今天有人问一个问题,要弄清楚从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或更大的所有字符串,然后将它们返回到另一个数组中。
2 回答

达令说
TA贡献1821条经验 获得超6个赞
运行时将索引传递给过滤器回调:
let newArr = arr.filter((element, index) => index >= 3);
在性能方面,您仍在制作一个新数组并复制值,因此它与大致相同.slice()
。

一只斗牛犬
TA贡献1784条经验 获得超2个赞
当您访问每个项目时,可以使用一个计数器并将其递减直到计数器达到零。然后取这个值。
const
fromIndex = i => _ => !i || !i--,
array = ['bug', 'cat', 'dog', 'flea', 'bat', 'hat', 'rat'],
result = array.filter(fromIndex(3));
console.log(result);
添加回答
举报
0/150
提交
取消