我试图找出一种在迭代数组时进行搜索的方法.我遇到了find()
方法.
这是给出的例子:
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 }
Run Code Online (Sandbox Code Playgroud)
我需要找到一个动态的水果名称,但我无法弄清楚如何做到这一点.简而言之,我正在尝试做类似的事情:
function findCherries(fruit, fruitName) {
return fruit.name === fruitName;
};
inventory.find(findCherries('cherries'))
//"true is not a function"
Run Code Online (Sandbox Code Playgroud)
有没有办法给出find()
一个参数并找到该参数的匹配基础?如果没有,什么方法允许我动态搜索对象数组?
有一个闭包(你的函数必须返回一个函数),如下所示:
function findFruitByName(name) {
return function(fruit) {
return fruit.name === name;
}
}
inventory.find(findFruitByName('cherries'))
// {name: "cherries", quantity: 5}
Run Code Online (Sandbox Code Playgroud)