标签:loops javascript-objects arrays javascript
我有一系列这样的对象.
var books = [{
id : 1,
name : 'Name of the wind',
year : 2015,
rating : 4.5,
author : 2}];
现在,我有一个功能editBooks,它要求用户提供一个ID,并用用户指定的值替换具有相同ID的书.
例如
function editBooks(name,author,year,rating,id)
如何根据用户提供的ID替换我的books数组中对象的内容?
解决方法:
您可以搜索id并将其用于更新.如果找不到书,则生成一个新条目.
function editBooks(name, author, year, rating, id) {
var book = books.find(b => b.id === id);
if (book) {
book.name = name;
book.author = author,
book.year = year;
book.rating = rating;
} else {
books.push({ id, name, author, year, rating });
}
}
var books = [{ id: 1, name: 'Name of the wind', year: 2015, rating: 4.5, author: 2 }];
editBooks('Foo', 2017, 3.3, 5, 1);
editBooks('bar', 2016, 1, 2, 2);
console.log(books);
为了获得更好的实现,我将id移到参数的第一位,并检查所有参数以仅更新未定义的参数,因为可能仅更新一个属性.
标签:loops,javascript-objects,arrays,javascript 来源: https://codeday.me/bug/20191026/1932753.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。