【发布时间】:2021-09-20 07:37:32
【问题描述】:
我想通过索引过滤这个数组?
arr = [1,2,3,4,5,6];
我正在尝试使用
arr.filter(x => x === [2,3])
但它似乎不起作用?
我只想要 [2, 3]rd 索引?
【问题讨论】:
标签: javascript
我想通过索引过滤这个数组?
arr = [1,2,3,4,5,6];
我正在尝试使用
arr.filter(x => x === [2,3])
但它似乎不起作用?
我只想要 [2, 3]rd 索引?
【问题讨论】:
标签: javascript
你需要map而不是filter:
arr = [11,22,33,44,55,66];
indexes = [2,3]
result = indexes.map(i => arr[i])
console.log(result)
请注意,这会以indexes 顺序返回值,但如果indexes 未排序并且您需要源顺序中的值,那么您确实需要filter。考虑:
arr = [11,22,33,44,55,66];
indexes = [4,2]
result1 = indexes.map(i => arr[i])
result2 = arr.filter((_,i) => indexes.includes(i))
console.log(result1)
console.log(result2)
【讨论】:
filter误导的答案,产生了一个非常明显和干净的解决方案。
map 可能更有效)