Справка по массиву. Как умножить массивы самостоятельно, без первого элемента в одном и без последнего элемента в другом - PullRequest
3 голосов
/ 03 апреля 2020

мой массив из пользовательского ввода: [1,2,3,4]

что я хочу:

[1,2,3] * [2,3,4]
(1 * 2) + (2 * 3) + (3 * 4) = 20

что у меня есть:

var array = [];
var number= document.getElementById("number").value; //this is where user inputs the number for my array

var sum = 0;
for (var i = 0; i< number.length; i++){
    array.push(parseInt(number[i]));
    var first= number[i-1];
    var second = number[i+1];
    sum += (first*second);
}
console.log(sum);

Ответы [ 3 ]

1 голос
/ 03 апреля 2020

это мое решение с уменьшением метода массива

[1, 2, 3, 4].reduce((a, c, i, s) => (s[i + 1] ? c * s[i + 1] + a : a), 0);
1 голос
/ 03 апреля 2020

Для этого не нужен массив.

В следующем примере: (1 * 2) + (2 * 3) + (3 * 4) вы можете увидеть, как это может произойти, используя для l oop без массива.

Следующие работы:

var number= parseInt(document.getElementById("number").value); //this is where user inputs the number for my array
var sum=0;
for (var i = 1; i< number; i++){
    sum += i*(i+1);
}
console.log(sum);
0 голосов
/ 03 апреля 2020

Вы можете использовать слайс, чтобы получить подмножества массивов, а затем использовать уменьшить, чтобы создать сумму, подобную этой:

const arr = [1,2,3,4]

const first = arr.slice(0, -1)
const last = arr.slice(1, arr.length)

const result = first.reduce((acc, num, idx) => acc + num * last[idx], 0)

console.log(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...