通过对每对值执行操作,将两个数组组合成一个数组

时间:2018-02-28 15:03:34

标签: javascript arrays

有两个长度相同的数组:

firstArray = [22, 54, 33, 10];
secondArray = [2, 27, 11, 10];

我希望通过将第一个数组的第一个元素除以第二个数组中的第一个数组得到第三个数组,在这种情况下结果应为:

resultArray = [11, 2, 3, 1];

我尝试使用foreach()map()来做,但我得到的是未定义的值。例如这段代码:

firstArray.forEach(index) => {
    resultArray[index] = firstArray[index] / secondArray[index];
});

有什么建议吗?

4 个答案:

答案 0 :(得分:3)

你可以这样试试:

firstArray.forEach((item, index) => {
    resultArray[index] = item / secondArray[index];
});

答案 1 :(得分:3)

您可以映射firstArray的迭代结果,并使用索引获取secondArray的值。



var firstArray = [22, 54, 33, 10],
    secondArray = [2, 27, 11, 10],
    result = firstArray.map((v , i) => v / secondArray[i]);
    
console.log(result);




另一种解决方案可能是收集数组中的所有数组并减少数据。



var firstArray = [22, 54, 33, 10],
    secondArray = [2, 27, 11, 10],
    result = [firstArray, secondArray].reduce((a, b) => a.map((v , i) => v / b[i]));
    
console.log(result);




答案 2 :(得分:1)

最简单的方法似乎是:



var firstArray = [22, 54, 33, 10],
secondArray = [2, 27, 11, 10];
var resultArray = firstArray.map( (e, i) => e / secondArray[i]);
console.log(resultArray);




答案 3 :(得分:1)

使用函数reduce



var firstArray = [22, 54, 33, 10],
    secondArray = [2, 27, 11, 10],
    thirdArray = firstArray.reduce((a, n, i) => { a[i] = n / secondArray[i]; return a}, []);
    
console.log(thirdArray);

.as-console-wrapper { max-height: 100% !important; top: 0; }