Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.03.2015, 04:02
Аватар для xXapokalypsesXx
Интересующийся
Отправить личное сообщение для xXapokalypsesXx Посмотреть профиль Найти все сообщения от xXapokalypsesXx
 
Регистрация: 06.06.2012
Сообщений: 22

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


Как можно сложить все эти числа?
Буду благодарен за помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 23.03.2015, 04:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А почему строку? Ведь если это был массив, который записали как JSON в локальное хранилище, то JSON.parse(json) возвращает не строку, а массив. Обходите теперь этот массив циклом и суммируйте значения его элементов.
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2015, 07:06
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 2,932

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);
Ответить с цитированием
  #4 (permalink)  
Старый 23.03.2015, 08:24
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

через eval?
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2015, 09:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 29,879

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)
Ответить с цитированием
  #6 (permalink)  
Старый 23.03.2015, 11:25
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 2,932

skrudjmakdak, а почему бы и нет? Это же клиент, а не сервер. И все данные берутся из localStorage, а не $_GET.
Ответить с цитированием
  #7 (permalink)  
Старый 23.03.2015, 14:30
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,698

Ruslan_xDD, а как данные в энтот localStorage попадают автор же не написал. Да и выглядит откровенно отвратительно, имхо.
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 23.03.2015, 22:04
Аватар для xXapokalypsesXx
Интересующийся
Отправить личное сообщение для xXapokalypsesXx Посмотреть профиль Найти все сообщения от xXapokalypsesXx
 
Регистрация: 06.06.2012
Сообщений: 22

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);

Последний раз редактировалось xXapokalypsesXx, 23.03.2015 в 22:10.
Ответить с цитированием
  #9 (permalink)  
Старый 23.03.2015, 22:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 29,879

Сообщение от xXapokalypsesXx
Сделал так,
тогда у вас лишнее
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);
Ответить с цитированием
  #10 (permalink)  
Старый 23.03.2015, 22:40
Аватар для xXapokalypsesXx
Интересующийся
Отправить личное сообщение для xXapokalypsesXx Посмотреть профиль Найти все сообщения от xXapokalypsesXx
 
Регистрация: 06.06.2012
Сообщений: 22

рони, благодарю)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значение переменной через запятую DDSSDD Серверные языки и технологии 41 16.10.2014 15:01
Превращение слов через запятую в ссылки Майрбек Элементы интерфейса 5 04.10.2014 10:45
перемножить 2 числа а потом сложить js djonA Общие вопросы Javascript 20 24.06.2013 22:29
Сложить 2 числа Esigns Общие вопросы Javascript 7 07.12.2012 14:34
Мультиселект элементов через запятую с возможностью удаления IgorN jQuery 4 07.09.2011 11:12