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