📜  Lodash _.takeWhile() 方法(1)

📅  最后修改于: 2023-12-03 14:44:03.094000             🧑  作者: Mango

Lodash _.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() 方法是一个非常有用的函数,可以帮助我们从数组中提取满足给定条件的前面连续的元素。无论是数字、字符串还是对象,只需提供一个合适的断言函数即可实现条件的判断。试试这个函数,快速提取出需要的数据片段吧!