如何给javascript find()方法一个参数来搜索?

Igg*_*ggy 2 javascript find

我试图找出一种在迭代数组时进行搜索的方法.我遇到了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()一个参数并找到该参数的匹配基础?如果没有,什么方法允许我动态搜索对象数组?

Hug*_* M. 5

有一个闭包(你的函数必须返回一个函数),如下所示:

function findFruitByName(name) {
    return function(fruit) {
        return fruit.name === name;
    }
}

inventory.find(findFruitByName('cherries'))
// {name: "cherries", quantity: 5}
Run Code Online (Sandbox Code Playgroud)