在JSON数组中查找项目并将其传递到其他数组时遇到一些问题。我收到的错误似乎是它没有正确地将项目传递出函数。它正在数据库中找到该项目,我可以在控制台日志中正确看到它,并使用JSON.stringify正确查看它。

虽然,无论我如何尝试将其从函数中传递出去(作为字符串,对象等),它都不会返回未定义的值。

如果我在newCard上执行console.log,它将始终以未定义的形式返回。

对此,我们将不胜感激,谢谢。

var deckObject = [];
var newCard = findCard('EX1_123');
deckObject.push(newCard);

function findCard(cardId){
   $.each(cardDB, function(i, v) {
      if (v.id === cardId) {
         v['count'] = 1;
         return v;
      }
    });

}

最佳答案

您永远不要从循环中返回值,而应使用回调来管理异步代码

var deckObject = [];
var newCard = findCard('EX1_123',function(newcard){
  deckObject.push(newCard);
});

function findCard(cardId,callback){
   $.each(cardDB, function(i, v) {
      if (v.id === cardId) {
         v['count'] = 1;
         callback(v);
      }
    });
}

09-25 18:42