如何将一个数组的元素与另一个具有相同索引的数组元素相乘?

5

我想编写一个JS算法,其中有两个数组

第一个数组的值将具有不同的数值。第二个数组是恒定的,例如 [5, 3, 6, 8]

现在我想要通过将第一个数组中的值与第二个数组中的相应索引值相乘来获得结果,例如对于这样一个第一个数组:[3, 7, 2, 5],它会变成这样:5*3、3*7、6*2、8*5。

我希望从结果中创建一个新数组,这种情况下是[15, 21, 12, 40]

如何实现这个结果?


请发布您的算法,附上您对其的解释以及具体失败的原因,这样我们就可以一起帮助您解决问题。 - GalAbra
请编辑您的问题,展示您所做的研究和尝试解决问题的方法。 - DecPK
这两个数组应该是相同长度的吗? - Snirka
@Snirka 是的,它们两个的长度是相同的。 - nsog8sm43x
@nsog8sm43x 请看下面的答案是否满足您的需求。 - Snirka
@Snirka 是的,我非常满意这个解决方案 :) 非常感谢! - nsog8sm43x
2个回答

8
你可以使用 map(),并使用可选参数 index,该参数是正在处理的数组当前元素的索引:

const arr1 = [3, 4, 5, 6];
const arr2 = [7, 8, 9, 10];

const mulArrays = (arr1, arr2) => {
    return arr1.map((e, index) => e * arr2[index]);
}

console.log(mulArrays(arr1, arr2));

假設這兩個數組的長度相同。


2
您可以简单地使用 for 循环 -
var arr1 = [5, 3, 6, 8];
var arr2 = [3, 7, 2, 5];
var finalArr = [];
for (var i = 0; i < arr1.length; i++) {
    finalArr[i] = arr1[i] * arr2[i];
}
console.log(finalArr);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接