JavaScript проходит через массив и вычитает каждый элемент следующим - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть массив, который выглядит следующим образом:

0: 0
1: 1
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
8: 8
9: 9
10: 10
11: 11
12: 12
13: 13
14: 14
15: 15
16: 16
17: 17
18: 21
19: 22
20: 23

Я хочу вычесть каждое значение из следующего и сохранить это вычтенное значение, как мне сделать это

Пока у меня естьсделал это

    _this.elements.forEach(function (element, index) {
        console.log(parseInt(element) - parseInt(element[index])); 

    });

Но он продолжает возвращаться неопределенным

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы можете отобразить нарезанный массив из второго элемента и отобразить дельту значения исходного массива с тем же индексом, что и значение нарезанного массива.

var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 21, 22, 23],
    result = array.slice(1).map((v, i) => v - array[i]);

console.log(result);
0 голосов
/ 12 ноября 2018

Прочитайте документацию по forEach

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

forEach - это потребительский метод, который не будет возвращать никакого результата, а просто использует каждое значение массива для определенной цели, как вы это делалидля отображения

возвращаясь к вашему вопросу, я думаю, что лучший способ использовать это reduce

    var numbers = [10, 1, 5];
    let result numbers.reduce( (v1,v2) => v1 - v2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...