Как упростить код на JavaScript?

Пользователь вводит количество проданных кофе за весь день

по формуле ( кофе1_мл * кофе1_колличество)+(кофе2_мл*кофе2_колличество).....(кофе3_мл..)= "Вы израсходовали всего"+ itogoml +" мл";


если будет 100 позиций,как мне упростить код до цикла или сделать его проще?

Как упростить код на JavaScript?
Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

http://vigrius.esy.es/pikabu/ лови

<?

$arCoffes = array(

"coffe1"=>"10",

"coffe2"=>"20",

"coffe3"=>"40",

"coffe4"=>"20",

"coffe5"=>"20",

"coffe6"=>"80",

"coffe7"=>"20",

"coffe8"=>"70",

);


?>

price 10P

<br>

<?foreach($arCoffes as $key=>$coffee):?>

<input class = "coffees" type = "hidden" value = <?=json_encode($arCoffes)?>>

<?=$key?> - <?=$coffee?>

<input data-coffee = <?=$key?> class = "counter" name = "<?=$coffee?>" value = 0>

<br>

<?endforeach?>

<div class = "all">

0

</div>

<div class = "price">

0

</div>

<script>

$(function(){

counter = new counter();

counter.init();

})


var counter = function()

{

var self = this;

self.values = {};

self.all = 0;

self.init = function()

{

self.coffes = JSON.parse($(".coffees").val());

$(".counter").each(function(){

var input = $(this);

var coffee = $(this).data("coffee");

var val = $(this).val();

self.values[coffee] = val;

recount();

})

$(".counter").off("input").on("input",function(){

var input = $(this);

var coffee = $(this).data("coffee");

var val = $(this).val();

var oldVal = self.values[coffee];

if(val == "")

{

self.values[coffee] = 0;

}

else

{

self.values[coffee] = val;

}

recount(oldVal,val,coffee);

})

}

function recount(oldValue,newValue,coffee)

{

var values = self.values;

if(oldValue)

{

var minus = oldValue*self.coffes[coffee];

self.all-=minus;

self.counter-=parseInt(oldValue);

var plus = newValue*self.coffes[coffee];

self.all+=plus;

self.counter+=parseInt(newValue);

}

else

{

var keys = Object.keys(self.values);

for(var i = 0 ;i<keys.length;i++)

{

var nowKey = keys[i];

var nowVal = self.values[nowKey];

var objem = self.coffes[nowKey];

var sum = nowVal*objem;

self.all+=sum;

}

self.counter = 0;

}

$(".all").html(self.all);

console.log(self.counter);

$(".price").html(self.counter*10);

}

}

раскрыть ветку (3)
0
Автор поста оценил этот комментарий
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

ну это чуть лучше)

0
Автор поста оценил этот комментарий

на плюс минус вешаешь ту же функцию,чуть доработанную

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества