📅  最后修改于: 2023-12-03 14:44:03.094000             🧑  作者: Mango
_.takeWhile()
方法介绍_.takeWhile()
是 Lodash 函数库中的一个方法,可以用于创建一个切片数组,从数组的起始元素开始提取,直到遇到不满足给定条件的元素为止。
_.takeWhile(array, [predicate=_.identity])
array
(Array): 要提取元素的数组。[predicate=_.identity]
(Function|Object|string): 遍历数组中的元素时使用的断言函数。(Array): 返回一个新的切片数组。
假设我们有一个包含学生分数的数组,我们希望提取出前面连续的及格分数(大于等于60分)。
const scores = [85, 90, 42, 70, 56, 61, 80];
const passedScores = _.takeWhile(scores, score => score >= 60);
console.log(passedScores);
// Output: [85, 90]
在上面的示例中,我们使用 _.takeWhile()
方法从 scores
数组中提取出满足条件 score >= 60
的元素。由于在索引 2 处的分数为 42,不满足给定条件,因此提取仅包含了索引 0 和 1 处的元素。
const users = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 30 },
{ name: 'Bob', age: 19 },
{ name: 'Alice', age: 35 },
{ name: 'Tom', age: 22 }
];
// 提取年龄小于等于 25 的用户
const youngUsers = _.takeWhile(users, user => user.age <= 25);
console.log(youngUsers);
// Output: [{ name: 'John', age: 25 }]
// 提取对象的 name 属性为偶数字符的对象
const evenLengthObjects = _.takeWhile(users, user => user.name.length % 2 === 0);
console.log(evenLengthObjects);
// Output: []
在上面的示例中,我们使用了 _.takeWhile()
方法提取满足条件的数组元素。第一个示例中,我们提取了年龄小于等于 25 的用户。第二个示例中,我们提取了 name
属性长度为偶数字符的对象,但由于没有满足条件的对象,所以返回了空数组。
_.takeWhile()
方法是一个非常有用的函数,可以帮助我们从数组中提取满足给定条件的前面连续的元素。无论是数字、字符串还是对象,只需提供一个合适的断言函数即可实现条件的判断。试试这个函数,快速提取出需要的数据片段吧!