洛达什 | _.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