📅  最后修改于: 2023-12-03 15:35:53.640000             🧑  作者: Mango
_.keepIndexed()
方法是下划线.js库提供的一个函数,它用于创建一个新的数组,该数组中包含原数组中满足指定条件的所有元素及其对应的索引。
_.keepIndexed(array, predicate, [context])
array
:需要处理的数组。predicate
:怎样筛选元素的函数。context
:用来执行 predicate 函数时,被赋予的上下文对象(即 predicate 函数内部的 this 对象)。返回一个新的数组,该数组中包含原数组中满足指定条件的所有元素及其对应的索引。
var characters = [
{ 'name': 'barney', 'age': 36 },
{ 'name': 'fred', 'age': 40 },
{ 'name': 'pebbles', 'age': 1 }
];
_.keepIndexed(characters, function(value, index) {
return index % 2 == 0;
});
// => [{ 'name': 'barney', 'age': 36 },{ 'name': 'pebbles', 'age': 1 }]
上述示例中,我们使用 _.keepIndexed()
方法,从数组 characters
中获取所有索引为偶数的元素及其索引。
var evenIndexArray = _.keepIndexed([1, 2, 3, 4, 5, 6], function(value, index) {
return index % 2 === 0;
});
// evenIndexArray => [1,3,5]
在这个示例中,我们使用 _.keepIndexed()
方法,从数组中获取所有索引为奇数的元素及其索引,并返回一个新的数组。
_.keepIndexed()
方法时,尽量使用具名函数而不是匿名函数,这样可以让代码更清晰易读;context
可以不写,默认为 undefined
。predicate
函数接收两个参数:value
和 index
,分别表示当前处理的元素和元素的索引。predicate
函数需要返回一个布尔值,如果返回的是 true
,则表示当前元素符合条件,需要保留;如果返回的是 false
,则表示当前元素不符合条件,应该过滤掉。