Как умножить элементы массива на элементы из другого массива с тем же индексом?

#javascript #arrays #multiplication

Вопрос:

Я пытаюсь написать алгоритм JS, в котором у меня есть два arrays .

Значение первого будет иметь разные числовые значения. Второй массив будет постоянным, скажем, например [5, 3, 6, 8] .

Теперь я хотел бы умножить значения из первого массива на соответствующее значение индекса из второго массива, чтобы, например, иметь такой первый массив: [3, 7, 2, 5] это выглядело бы так: 5*3, 3*7, 6*2, 8*5.

Из результата я хотел бы создать новый массив, который в данном случае является [15, 21, 12, 40] .

Как я могу достичь этого результата?

Комментарии:

1. Пожалуйста, опубликуйте свой алгоритм с вашим объяснением и объяснением того, что именно не удалось, чтобы мы могли помочь вам решить эту проблему вместе

2. Пожалуйста, отредактируйте свой вопрос, чтобы показать, какие исследования вы провели и какие попытки вы предприняли, чтобы решить проблему самостоятельно

3. Ожидается, что оба массива будут одинаковой длины?

4. @Snirka да, оба имеют одинаковую длину

5. @nsog8sm43x посмотрите, удовлетворяет ли вас приведенный ниже ответ

Ответ №1:

Вы можете использовать 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:

Вы можете просто использовать для цикла —

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