Сложить числа написанные через запятую
Здравствуйте!
С помощью данного кода:
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, время: 03:30. |