如何使map函数返回单个值而不是数组?

时间:2017-02-25 22:17:10

标签: javascript function object dictionary react-native

使用下面这个函数的原始想法是它应该只在ID匹配时才返回卡(一个对象),但是它没有返回任何内容(它返回未定义):

set size ratio 1

然后我意识到我的返回范围错误,我需要返回循环返回的内容,所以我提出了这个:

showDetails(cards, id){
  cards.map(function(card, index){
    if(card.id==id){
      console.log(card);
      return card;
    }
  })
}

上面代码的结果是:[undefined,Object]

我只想让这个函数showDetails返回对象,而不是数组。

谢谢!

1 个答案:

答案 0 :(得分:8)

您可以在提前退出时使用Array#some

function saveData(filename,data){
   if(!userDir) {
      //report error
      return;
   }

   userDir.getFile(filename, {create: true}, function(fileEntry) {
      if(!fileEntry || !fileEntry.isFile){
         //report error
         return;
      }

      fileEntry.createWriter(function(fileWriter) {
         fileWriter.onwriteend = function(e) {
            //report success
         };
         fileWriter.onerror = function(e) {
            //report error: e.toString()
         };

         //Create a Blob from the data and write it.
         var blob = new Blob([data], {type: 'text/plain'});
         fileWriter.write(blob);
      });
   });
}

//at some point after user has selected directory
saveData("log.txt","Some data");

或使用ES6方法Array#find

function showDetails(cards, id) {
    var result;
    cards.some(function(card) {
        if (card.id === id) {
            result = card;
            return true;
        }
    });
    return result;
}