Сложить числа написанные через запятую
Здравствуйте!
С помощью данного кода: var json = localStorage.getItem('save'); var data = JSON.parse(json); var one = data.data; $('.get').text(one); Получаю строку: 0,5,5,5,5,4,5,5,5,4,5,4,5,4,4,4,4,4,5,4,5,5,5,4,4,4,4,5,4,4,4,4,5,5,4,4,3,4,4,5,3,4,4,4,4,5 Как можно сложить все эти числа? Буду благодарен за помощь. |
А почему строку? Ведь если это был массив, который записали как JSON в локальное хранилище, то JSON.parse(json) возвращает не строку, а массив. Обходите теперь этот массив циклом и суммируйте значения его элементов.
|
var one = [0,5,5,5,5,4,5,5,5,4,5,4,5,4,4,4,4,4,5,4,5,5,5,4,4,4,4,5,4,4,4,4,5,5,4,4,3,4,4,5,3,4,4,4,4,5]; var n = eval(one.join('+')); alert(n); |
через eval?
|
xXapokalypsesXx,
:) var one = "0,5,5,5,5,4,5,5,5,4,5,4,5,4,4,4,4,4,5,4,5,5,5,4,4,4,4,5,4,4,4,4,5,5,4,4,3,4,4,5,3,4,4,4,4,5", sum = one.split(",").reduce(function(a,b) {return a + +b},0); alert(sum) |
skrudjmakdak, а почему бы и нет? Это же клиент, а не сервер. И все данные берутся из localStorage, а не $_GET.
|
Ruslan_xDD, а как данные в энтот localStorage попадают автор же не написал. Да и выглядит откровенно отвратительно, имхо.
|
Ruslan_xDD, спасибо, работает отлично, но многие рекомендуют воздержаться от использования eval.
рони, и вам спасибо, ваш пример работает, но вот так почему-то не сработало: var json = localStorage.getItem('save'); var data = JSON.parse(json); var one = data.data, sum = one.split(',').reduce(function(a,b) {return a + +b},0); $('.get').text(sum); Сделал так, теперь работает: var json = localStorage.getItem('save'); var data = JSON.parse(json); var one = data.data; var two = one.join('+'); var sum = two.split('+').reduce(function(a, b) { return a + +b }, 0); $('.get').text(sum); |
Цитата:
var json = localStorage.getItem('save'); var data = JSON.parse(json); var one = data.data; var sum = one.reduce(function(a, b) { return a + +b }, 0); $('.get').text(sum); |
рони, благодарю)
|
Часовой пояс GMT +3, время: 20:07. |