📜  下划线.js | _.keepIndexed() 方法(1)

📅  最后修改于: 2023-12-03 15:35:53.640000             🧑  作者: Mango

_.keepIndexed() 方法介绍

_.keepIndexed() 方法是下划线.js库提供的一个函数,它用于创建一个新的数组,该数组中包含原数组中满足指定条件的所有元素及其对应的索引。

语法
_.keepIndexed(array, predicate, [context])
参数
  • array:需要处理的数组。
  • predicate:怎样筛选元素的函数。
  • context:用来执行 predicate 函数时,被赋予的上下文对象(即 predicate 函数内部的 this 对象)。
返回值

返回一个新的数组,该数组中包含原数组中满足指定条件的所有元素及其对应的索引。

示例
示例1
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 中获取所有索引为偶数的元素及其索引。

示例2
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 函数接收两个参数:valueindex,分别表示当前处理的元素和元素的索引。
  • predicate 函数需要返回一个布尔值,如果返回的是 true,则表示当前元素符合条件,需要保留;如果返回的是 false,则表示当前元素不符合条件,应该过滤掉。