我有第一个值数组和第二个索引数组。我想过滤第一个数组并仅返回在第二个数组中具有索引的值。
所以,给定:
arr1 = [4775453877338112, 5901353784180736, 6605041225957376]
arr2 = [0,2]
我想返回:
output = [4775453877338112, 6605041225957376]
谢谢。对于奖励积分,为什么以下方法不起作用?
var output = arr1.filter( (item) => arr1.indexOf(item) in arr2 === true )
如果这个简单的问题与此重复,我们深表歉意:基于索引数组的过滤数组 https://stackoverflow.com/questions/33211799/filter-array-based-on-an-array-of-index,但下划线让我失望。
对于奖励积分,为什么以下方法不起作用?
因为你正在检查if the index存在于arr2
,而不是物品本身.
只需简单地使用一个map
var output = arr2.map( s => arr1[s] );
Demo
var arr1 = [4775453877338112, 5901353784180736, 6605041225957376];
var arr2 = [0,2];
var output = arr2.map( s => arr1[s] );
console.log( output );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)