Javascript - Расчет процентной разницы от индекса до него - PullRequest
0 голосов
/ 02 мая 2020

У меня есть массив stateArr, который я пытаюсь рассчитать в процентах прироста на основе числа перед ним.

Например, index[0] - index[1] / index[0] * 100, затем index[1] - index[2] / index[1] * 100 и так далее ... что даст мне мой% результат. У меня длина массива 23.

На данный момент мой результат застрял на NaN. Моя проблема не в том, как позвонить, чтобы сказать, вычтите из индекса до того, на котором вы сейчас находитесь. Я пытался [i-1], который не дал мне желаемых результатов

Вот мой код

 //removing of commas
    const percentage = []
        stateArr.stateArr.forEach(({ DataValue }) => {
            percentage.push(Number(DataValue.replace(/,/g, '')));
        });

console.log(percentage)
    return of console.log percentage 

(23) […]
​
0: 1378653.7
​
1: 1470393
​
2: 1582377.4
​
3: 1709938.7
​
4: 1702775.7
​
5: 1743650.6
​
6: 1825424
​
7: 1902318.8
​
8: 1990140.8
​
9: 2072177
​
10: 2103618.2
​
11: 2111138
​
12: 2026486.9
​
13: 2058137.9
​
14: 2091586
​
15: 2144497.3
​
16: 2220867.6
​
17: 2312540.1
​
18: 2428598.4
​
19: 2500950.4
​
20: 2610682.3
​
21: 2721651
​
22: 2792029.1

//new array without commas
const finalPercentage = percentage.map((stPer, i ) => {
        return 100 * Math.abs((stPer - stPer[i]) / ((stPer + stPer[i]) / 2))
    })

console.log(finalPercentage) 

returns NaN

1 Ответ

1 голос
/ 02 мая 2020

Более освещенный раствор:

const percentageArr = myArr.map((v, i) => i === 0 ? 100 : Math.round(v * 100 / myArr[i - 1]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...