【发布时间】:2017-05-19 23:03:05
【问题描述】:
我正在尝试找出一种在迭代数组时进行搜索的方法。我遇到了find() method。
这是给出的示例:
var inventory = [
{name: 'apples', quantity: 2},
{name: 'bananas', quantity: 0},
{name: 'cherries', quantity: 5}
];
function findCherries(fruit) {
return fruit.name === 'cherries';
}
console.log(inventory.find(findCherries));
// { name: 'cherries', quantity: 5 }
我需要找到一个动态的水果名称,但我不知道该怎么做。简而言之,我正在尝试做类似的事情:
function findCherries(fruit, fruitName) {
return fruit.name === fruitName;
};
inventory.find(findCherries('cherries'))
//"true is not a function"
有没有办法给find() 一个参数并根据该参数找到一个匹配项?如果没有,什么方法可以让我动态搜索对象数组?
【问题讨论】:
-
搜索/阅读 Eloquent JavaScript。第二种形式的“问题”是代码在应该传递函数对象时急切地评估函数调用;这可以通过闭包轻松解决。
-
啊,我明白了! “cherries”不是一个函数,这就是它不起作用的原因。在阅读了下面的 cmets 之后,有一个带有动态参数存根的回调参数是有意义的。谢谢!
标签: javascript find