选择数组中的项目 - Javascript - 使用Filter方法

问题描述 投票:0回答:4

有人今天问了一个问题,想要从数组中选择从I到数组末尾的某些元素,这让我想知道如何用filter方法做到这一点。

有人给出的解决方案之一是使用slice,我知道你能够从索引到索引进行选择,但是你如何实现filter方法来做同样的事情呢?

let arr = ['bug', 'cat', 'dog', 'flea', 'bat', 'hat', 'rat'];

let newArr = arr.filter(element => element >= element.indexOf(3));
    
console.log(newArr);

这是我提出的,它不起作用,但想法是选择索引为3或更大的所有字符串并将它们返回到另一个数组。

javascript arrays filter indexof
4个回答
4
投票

运行时将索引传递给过滤器回调:

let newArr = arr.filter((element, index) => index >= 3);

在性能方面你仍然在制作一个新阵列并复制值,所以它与.slice()大致相同。


2
投票

当您访问每个项目时,您可以使用计数器并递减计数器直到计数器达到零。然后取这个值。

const
    fromIndex = i => _ => !i || !i--,
    array = ['bug', 'cat', 'dog', 'flea', 'bat', 'hat', 'rat'],
    result = array.filter(fromIndex(3));

console.log(result);

1
投票

您应该使用筛选条件创建一个函数:

let arr = ['bug', 'cat', 'dog', 'flea', 'bat', 'hat', 'rat'];

function filterCriteria(item) {
  return item >= someValue;
}

function someFunction() {
  return arr.filter(filterCriteria);
}

“someFunction”将返回已过滤的数组


1
投票

过滤器回调中的第二个参数是index。所以你可以做这样的事情

arr.filter((element,index)=> index> = 3);

© www.soinside.com 2019 - 2024. All rights reserved.