Я достиг сохранения данных в этом формате. Это показывает общую стоимость каждой категории (напр., ЕДА, ОДЕЖДА).
var `obj` = {}; `obj` = {FOOD: 1000, CLOTHES: 2000}
Значение должно быть перезаписано после нового ввода.Например, когда выбран «FOOD» и добавлено значение «500», obj
следует обновить до obj = {FOOD: 1500, CLOTHES: 2000}
.
Однако значение в obj
постоянно добавляет значениякоторые уже были рассчитаны.Я хочу, чтобы к общей сумме каждой категории добавлялись только новые значения.
var obj = {};
$('.singleRow').each(function(rowIndex, row) {
var key = $(row).find('select').val();
if (!obj[key]) {
obj[key] = 0;
obj[key] += $(row).find('.cost').val() * 1;
} else {
obj[key] += $(row).find('.cost').val() * 1;
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
<div id="0" class="singleRow" style="clear: both;">
<span id="add-row" class="glyphicon glyphicon-plus"></span>
<input class="tableForSpreadsheet" type="text" id="0:0">
<input class="tableForSpreadsheet" type="text" id="0:1">
<select class="tableForSpreadsheet form-control" id="0:2">
<option selected="selected">FOOD</option>
<option>CLOTHES</option>
</select>
<input class="tableForSpreadsheet cost" type="text" id="0:3">
</div>
</div>
Поскольку я использую each()
, расчет общей стоимости всегда начинается с первой строки.Однако я хочу, чтобы каждое значение добавлялось только один раз.Как я могу исправить свой код для достижения этой цели?