以下功能的原始想法是,只有当ID匹配时,它才能返回卡(对象),但是,它没有返回任何内容(返回未定义):
showDetails(cards, id){
cards.map(function(card, index){
if(card.id==id){
console.log(card);
return card;
}
})
}
然后我意识到我的返回范围是错误的,我需要返回循环返回的内容,所以我想到了:
showDetails(cards, id){
return (cards.map(function(card, index){
if(card.id==id){
return card;
}
}))
}
上面代码的结果是:[未定义,对象]
我只希望此函数showdetails返回对象,而不是数组。
谢谢!
您可以使用早期退出的Array#some
。
function showDetails(cards, id) {
var result;
cards.some(function(card) {
if (card.id === id) {
result = card;
return true;
}
});
return result;
}
或使用ES6方法Array#find
function showDetails(cards, id) {
return cards.find(function(card) {
return card.id === id;
});
}