📜  洛达什 | _.find() 方法

📅  最后修改于: 2022-05-13 01:56:25.081000             🧑  作者: Mango

洛达什 | _.find() 方法

_.find() 方法访问集合的每个值并返回第一个通过谓词真值测试的元素,如果没有值通过测试,则返回 undefined。该函数在找到匹配项后立即返回。所以它实际上是根据谓词搜索元素。
句法:

_.find(collection, predicate, fromIndex)

参数:此方法接受三个参数,如上所述,如下所述:

  • collection:此参数保存需要检查的数组或对象集合。
  • 谓词:此参数保存调用迭代的函数。
  • fromIndex:此参数保存您要开始搜索的索引(可选)。如果您不传递此参数,则它会从头开始搜索。

返回值:返回匹配的元素,如果没有匹配则返回 undefined。
示例 1:在这个示例中,我们将尝试找到第一个平方大于 100 的数字。

javascript
const _ = require('lodash');
 
let x = [2, 5, 7, 10, 13, 15];
 
let result = _.find(x, function(n) {
    if (n * n > 100) {
        return true;
    }
});
 
console.log(result);


javascript
const _ = require('lodash');
 
let x = [-1, 29, 7, 10, 13, 15];
 
let result = _.find(x, function(n) {
    if (n > 10) {
        return true;
    }
}, 2);
 
console.log(result);


javascript
const _ = require('lodash');
 
let x = [
    {'name': 'Akhil', marks:'78'},
    {'name': 'Akhil', marks:'98'},
    {'name': 'Akhil', marks:'97'}
];
 
let result = _.find(x, function(obj) {
    if (obj.marks > 90) {
        return true;
    }
});
 
console.log(result);


javascript
const _ = require('lodash');
 
let x = [1, 2, 7, 10, 13, 15];
 
let result = _.find(x, function(n) {
    if (n < 0) {
        return true;
    }
});
 
console.log(result);


在这里, const _ = require('lodash') 用于将 lodash 库导入文件。
输出:

13

示例 2:在此示例中,我们将找到列表中大于 10 的第一个数字,但从索引 2 开始搜索。

javascript

const _ = require('lodash');
 
let x = [-1, 29, 7, 10, 13, 15];
 
let result = _.find(x, function(n) {
    if (n > 10) {
        return true;
    }
}, 2);
 
console.log(result);

输出:

13

示例 3:在此示例中,我们将搜索列表中第一个得分超过 90 的学生(对象)。

javascript

const _ = require('lodash');
 
let x = [
    {'name': 'Akhil', marks:'78'},
    {'name': 'Akhil', marks:'98'},
    {'name': 'Akhil', marks:'97'}
];
 
let result = _.find(x, function(obj) {
    if (obj.marks > 90) {
        return true;
    }
});
 
console.log(result);

输出:

{ name: 'Akhil', marks: '98' }

示例 4:当没有元素对谓词返回 true 时。

javascript

const _ = require('lodash');
 
let x = [1, 2, 7, 10, 13, 15];
 
let result = _.find(x, function(n) {
    if (n < 0) {
        return true;
    }
});
 
console.log(result);

输出:

undefined

注意:这在普通 JavaScript 中不起作用,因为它需要安装库 lodash。
参考: https://lodash.com/docs/4.17.15#find