大家好我有两个数组:array1和array2。解释这个问题有点复杂
var array1 = [39, "*", 62, "*", "*", 33.09,"*",56];
var array2 = [55, 6, 28, 32, 66, 58,15,56];
我想要一个array3,它比较array1和array2中的索引,并将结果发送到数组3 所以我的array3看起来应该是这样的
var array3 = [55,28,58,56]
我尝试了很多解决方案,但我没有成功。谢谢你的帮助,对不起我的新手问题 - 我正在努力学习。
答案 0 :(得分:2)
首先你不需要为新手做道歉,我们在职业生涯的某些时候都是新手,我们每天都在学习新事物
其次,您需要在第二个数组上使用过滤器,并根据您过滤的索引返回一个新数组
var array1 = [39, "*", 62, "*", "*", 33.09,"*",56];
var array2 = [55, 6, 28, 32, 66, 58,15,56];
var result = array2.filter(function(x, i) {
return array1[i] !== '*';
});
console.log(result);
答案 1 :(得分:2)
您可以检查第一个数组,并从同一个索引处的第二个项目返回,而不是星号。
var array1 = [39, "*", 62, "*", "*", 33.09, "*", 56],
array2 = [55, 6, 28, 32, 66, 58, 15, 56],
result = array2.filter((a, i) => array1[i] !== '*');
console.log(result);
答案 2 :(得分:2)
您可以使用.filter()
过滤第二个数组的元素,如下所示:
let a1 = [39, "*", 62, "*", "*", 33.09, "*", 56],
a2 = [55, 6, 28, 32, 66, 58, 15, 56],
skipElem = "*";
let result = a2.filter((_, i) => a1[i] !== skipElem);
console.log(result);
<强>文档:强>
答案 3 :(得分:1)
使用filter
var array3 = array2.filter( (s, i) => array1[i] != "*")
<强>演示强>
var array1 = [39, "*", 62, "*", "*", 33.09,"*",56];
var array2 = [55, 6, 28, 32, 66, 58,15,56];
var array3 = array2.filter( (s, i) => array1[i] != "*");
console.log(array3);
答案 4 :(得分:1)
var array1 = [39, "*", 62, "*", "*", 33.09,"*",56];
var array2 = [55, 6, 28, 32, 66, 58,15,56];
var array3 = [];
for(var index=0;index< array1.length ;index++){
if(array1[index] !== "*") {
array3.push(array2[index]);
}
}
console.log(array3);