在函数中,您是从传递给的函数返回的
forEach,而不是从返回的
getByKey。
您可以这样修改它:
function getByKey(key) { var found = null; data.forEach(function (val) { if (val.Key === key) { found = val; } }); return found;}但这会迭代所有元素,即使立即找到该项目也是如此。这就是为什么最好使用一个简单的
for循环:
function getByKey(key) { for (var i=0; i<data.length; i++) { if (data[i].Key === key) { return data[i]; } }}请注意,我还修改了您的代码以返回值,而不是键。我想这就是意图。您可能还对另一个迭代函数感到困惑:传递给forEach的回调的第一个参数是数组的元素。



