Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.04.2013, 17:52
Интересующийся
Отправить личное сообщение для weber Посмотреть профиль Найти все сообщения от weber
 
Регистрация: 08.04.2013
Сообщений: 16

Исключение нулевых данных в массиве
Всем привет, встала одна проблема с JS, имеется массив с данными, которые разбираются в цикле, нужно их перемножить между собой, но попадаются ключи равные нулю и тогда умножение не работает. Как можно в цикле указать чтобы пропускались такие значения?

небольшая иллюстрация моего кода, чтобы было понятней о чем речь:

var curr_string = $('.select option:selected');
var price = 0;
$.each(curr_string, function() {
    price += parseFloat($(this).attr('price'))
}


в данный момент такой скрипт работает и суммирует значения, но нужно изменить на умножение, но возникает вышеописанная проблема и в результате получаю ноль.

Как можно в таком цикле пропускать исключить нулевые значения? Или может вообще по другому стоит сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 08.04.2013, 18:29
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

http://javascript.ru/if
Ответить с цитированием
  #3 (permalink)  
Старый 08.04.2013, 22:38
Интересующийся
Отправить личное сообщение для weber Посмотреть профиль Найти все сообщения от weber
 
Регистрация: 08.04.2013
Сообщений: 16

условие if я пробовал, но тоже результата нет. Может чего-то не так пишу?

$.each(curr_string, function() {
            if ($(this).attr('price') != 0) {
                price *= parseFloat($(this).attr('price'));
            }
        });


в результате просто ничего не получаю
Ответить с цитированием
  #4 (permalink)  
Старый 08.04.2013, 22:59
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Надеюсь при умножении начальное значение не 0?
Ответить с цитированием
  #5 (permalink)  
Старый 09.04.2013, 00:59
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

price *= +$(this).attr('price') || 1;


Сообщение от Octane
Надеюсь при умножении начальное значение не 0?
кто знает
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #6 (permalink)  
Старый 09.04.2013, 01:28
Интересующийся
Отправить личное сообщение для weber Посмотреть профиль Найти все сообщения от weber
 
Регистрация: 08.04.2013
Сообщений: 16

Сообщение от Octane Посмотреть сообщение
Надеюсь при умножении начальное значение не 0?
я конечно не силен в программировании, но математику первого класса пока не забыл

начальное значение было 1.

Методом проб и ошибок выяснил, что просто нужно было писать вот так:

var price_val = $(this).attr('price');
if (price_val > 0) {
      price *= parseFloat(price_val);
}


то есть заменить знак "не равно" на "больше". Не знаю почему "!=" не сработало, но это уже не так важно.

В любом случае спасибо за участие
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Изменение окраски строк таблицы, исходя из данных? Space-06 Events/DOM/Window 4 14.02.2012 21:32
Получение данных из тега в массиве, как? Madd Общие вопросы Javascript 37 06.07.2010 00:59
Синхронный запрос данных по AJAX Shasoft AJAX и COMET 2 03.03.2009 14:07
Хранимая область данных. PolarWolf Общие вопросы Javascript 17 14.01.2009 18:25