从第二个数组

时间:2018-03-27 10:04:17

标签: javascript html arrays

大家好我有两个数组: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]

我尝试了很多解决方案,但我没有成功。谢谢你的帮助,对不起我的新手问题 - 我正在努力学习。

5 个答案:

答案 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);