【发布时间】:2016-05-11 14:30:51
【问题描述】:
当我在数组中有对象时
var bookIndex = [{
id: '1',
title: 'First title',
description: 'This is my first title'
}, {
id: '2',
title: 'Second title',
description: 'This is my second title'
}];
然后使用 for() 循环遍历数组
function getBook(bookId){
for (var i = 0; i < bookIndex.length; i++) {
if (bookIndex[i].id === bookId) {
return bookIndex[i];
}
}
return undefined;
};
我想知道如何使用其他循环方法来获得相同的结果。前任。为每个。 我尝试使用类似的东西,但它无法获得我想要的返回对象。
function getBook(bookId) {
bookIndex.forEach(function () {
if (bookId === bookIndex.id) {
return bookId;
}
return undefined;
});
};
【问题讨论】:
-
javascript 中没有 '====' 运算符。将其更改为“===”。
-
你需要数组
loop或数组search? -
应该
getBook()返回一本书还是一个索引?如果只是 inde,你已经有一个,那么你只需要 true 或 false。 -
getBook() 应该将 book 作为对象返回。我的意思是 bookIndex 数组中的 1 个对象。
-
真正的问题是你想找到第一次出现还是所有出现..?如果你想要第一次出现,最好使用
Array.prototype.find(),但如果你需要所有出现,那么Array.prototype.filter()是你的朋友。
标签: javascript arrays for-loop foreach