有许多相关的问题,没有一个答案对我有帮助。换句话说,问题是特定于场景而不是孤立的问题。因此我的问题在这里:
我有一个JavaScript函数。使用jQuery。我在$ .each()循环中使用匿名函数来查找我想要的对象并返回给调用者。需要帮助来弄清楚如何从匿名的内部函数返回。
functions.findRider = function(riderId){
$.each(app.riders, function(index, result) {
if (result["id"] == riderId) {
console.log("found the rider:"+JSON.stringify(result));
return result;
}
});
console.log("Did not find rider");
}
app.riders是一个对象数组。数组中的每个对象都有一个Id。
答案 0 :(得分:1)
最简单的方法是在$.each()
函数之外创建一个变量并从循环内部添加它:
functions.findRider = function(riderId){
var results = [];
$.each(app.riders, function(index, result) {
if (result["id"] == riderId) {
console.log("found the rider:"+JSON.stringify(result));
results.push(result);
}
});
console.log("Did not find rider");
}
据我所知(但我可能会弄错),无法从这样的匿名函数返回。
答案 1 :(得分:1)
您可以使用.filter
进行此类搜索
functions.findRider = function(riderId) {
var data = app.riders.filter(function(x) {
return x.id == riderId;
});
return data.length > 0 ? data[0] : null;
}