сложение значений в массиве - NaN
работаю над csv файлом. колонка state отвечает за штат, а balance за баланс типа "122.11") мне надо вывести общий баланс по каждому штату, и при повторе штатов баланс увеличивается. Если таким образом исполнять функцию, то штаты в консоле показываются, а вместо значений баланса выдает NaN- возможно у кого-то будут идеи как решить это?
заранее спасибо! :) function stateBalance(array) { var states = new Array(); for (var i = 1; i < array.length; i++) { var state = array[i][5]; var balance = array[i][12] .slice(1, -1); if (typeof array[i][5] == 'undefined') states[state] = 0; states[state] += parseFloat(balance); } return states } |
Цитата:
Цитата:
|
NaN выдает потому что андефайнд прокрался после этого вычисления states[state] += parseFloat(balance); по этому я прописала if (typeof array[i][5] == 'undefined') states[state] = 0;
почему не суммируется.. |
когда в консоле вывожу typeof balance то пишет string. но используется ведь parseFloat к нему же
|
Цитата:
|
Цитата:
states[state] Т.е. дело точно в операндах. |
лол а при получени операндов нельзя проверить из на нан? или ты считаешь что чем больше строчек кода и действий тем программа тупит и экономишь)? (бывало и такоебыдло)
|
Цитата:
что убрать строку с if что оставить то states[state] = number, balance и state = string... ну а если до сложения то меняется только states[state] на undefined. Находила много вариантов как бы balance( числа типа '122.22' ) перевести в число чтобы просуммировать, ничего правильно не получилось. |
Цитата:
|
Цитата:
1. Понять на каких именно данных получается НаН 2. На простом примере научиться переводить разнотипные операнды к нужному типу 3. Применить полученые навыки |
интересно взглянуть на массив array, который передается функции
|
Часовой пояс GMT +3, время: 01:55. |