如何使地图函数返回单个值而不是数组



以下功能的原始想法是,只有当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;
    });
}

相关内容

  • 没有找到相关文章

最新更新