在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);
}
});
}