Показать сообщение отдельно
  #8 (permalink)  
Старый 17.01.2015, 15:54
Интересующийся
Отправить личное сообщение для Noobloid Посмотреть профиль Найти все сообщения от Noobloid
 
Регистрация: 16.01.2015
Сообщений: 23

for (var i in mass[0].col) {//прогоняем через все значения количеств в массиве
        i = parseInt(i);
        if (ammount >= Math.max.apply(Math, mass[0].col)) {//это должно срабатывать в самом конце если вообще дойдёт сюда
            v1 = Math.min.apply(Math, mass[0].price) * ammount;
            break;
        } else if (ammount > mass[0].col[i] && ammount <= mass[0].col[i + 1]) {//если количесво введёное юзером больше чем "mass[0].col[i]" и меньше чем "mass[0].col[i+1]" (т.е. находится между соседних значений в массиве) то высчитываем значение и обрываем for loop. Но тут есть проблемма- если i дойдёт до последнего значения в массиве то mass[0].col[i + 1] выдаст ошибку поскольку в массиве нет индекса [i + 1], чтобы этого избежать сделан первый if statement- если количесво введёное пользователем больше или равно максимальному значению в массиве- то вычисляем сумму по минимальному значению в массиве цен и обрываем for loop чтобы не получить ошибки с mass[0].col[i + 1]
           v1 = mass[0].price[i] * ammount;
            break;
        }
    }

Как смог так пояснил
Ответить с цитированием