📅  最后修改于: 2023-12-03 15:32:44.917000             🧑  作者: Mango
Lodash 是一个流行的、使用频率高的 JavaScript 工具库,为开发者提供了丰富的函数和方法来简化常见任务。其中,_.takeRightWhile()
方法能够从指定数组的最后一个元素开始提取元素,直到传递的测试函数返回 false。在本文中,我们将详细介绍这个方法以及它的使用方法。
_.takeRightWhile(array, [predicate=_.identity])
array
(Array): 需要查询的数组。[predicate=_.identity]
(Function): 函数用来检查数组中的元素,返回 false 表示提取结束。接受三个参数:(value, index, array)。返回新提取的数组片段,从指定数组的最后一个匹配元素开始。与 _.takeWhile()
方法类似,但是从数组的末尾开始运行。
const users = [
{ 'user': 'barney', 'active': false },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': true }
];
_.takeRightWhile(users, function(o) { return !o.active; });
// => objects for ['fred', 'barney']
// The `_.matches` iteratee shorthand.
_.takeRightWhile(users, { 'user': 'pebbles', 'active': true });
// => objects for ['pebbles']
// The `_.matchesProperty` iteratee shorthand.
_.takeRightWhile(users, ['active', false]);
// => objects for ['fred', 'barney']
// The `_.property` iteratee shorthand.
_.takeRightWhile(users, 'active');
// => objects for []
在上面的示例代码中,我们定义了一个包含三个对象的数组 users
,然后使用 _.takeRightWhile()
方法基于不同的断言条件提取了数组的不同片段。接下来,我们来分析一下这些例子。
_.takeRightWhile(users, function(o) { return !o.active; });
// => objects for ['fred', 'barney']
在这个示例中,我们传递了一个函数作为第二个参数。该函数的作用是检查是否还有未被遍历的未激活的用户。因此,我们得到的结果数组中只包含了 ['fred', 'barney']
两个对象。
_.takeRightWhile(users, { 'user': 'pebbles', 'active': true });
// => objects for ['pebbles']
在这个示例中,我们传递了一个 JavaScript 对象作为第二个参数。这被称为 _.matches
迭代器简写,它提供了一种直接比较对象属性的便捷方式。由于存在一名活跃用户,因此我们只得到一个 ['pebbles']
对象的数组片段。
_.takeRightWhile(users, ['active', false]);
// => objects for ['fred', 'barney']
在这个示例中,我们使用了 _.matchesProperty
迭代器简写,该简写接受一个数组,其中包含用于比较属性的键和值。在本例中,我们筛选出了所有未激活的用户,因此得到了一个包含两个对象的数组片段 ['fred', 'barney']
。
_.takeRightWhile(users, 'active');
// => objects for []
在这个示例中,我们只对用户数组执行一个 JavaScript 中单独的属性名的迭代器简写,该名为 _.property
。在本例中,由于所有用户都是允许的,我们获得空的数组片段 []
。
_.takeRightWhile()
方法是 Lodash 库中的一个实用函数,它可以用于过滤数组。在本文中,我们深入了解了该函数的参数、输出格式以及一些简单的示例,它们可以大大提高您的 JavaScript 编程效率。如果您需要任何帮助或有任何问题,请随时联系 Lodash 社区或支持人员。