var dataJson = JSON.stringify({
"11501": {
"Name": "11501",
"RecipeName": "N",
"Time": 10,
"Ingredient1ID": 1,
"Ingredient1Quantity": 2,
},
"11502": {
"Name": "11502",
"RecipeName": "N",
"Time": 10,
"Ingredient1ID": 2,
"Ingredient1Quantity": 2,
},
});
var jsonobject = JSON.parse(dataJson);
element = {};
function addElement(e, t) {
element[jsonobject[e]['Ingredient1ID']] += jsonobject[e]['Ingredient1Quantity'];
console.log(element);
}

<button type="button" class="btn bg-purple btn-flat margin" onclick="addElement(11501,10);">
<i class="fa fa-plus"></i> Add to queue
</button>
<button type="button" class="btn bg-purple btn-flat margin" onclick="addElement(11502,10);">
<i class="fa fa-plus"></i> Add to queue item2
</button>
&#13;
addElement是一个onClick函数,它应该在每次点击时对元素[key]的数量求和,如果该键存在,它应该添加诸如+ = do之类的值。
目前它输出Object {11001:NaN},因为它没有基本值。我无法为密钥提供基本值,因为它们是动态数字示例:
首先点击
对象{ID:Qty}
对象{11501:2}
对象{11501:2 + 2}
是否可以选择完成此总和功能?如果它更容易,它也可以是一个数组。
答案 0 :(得分:2)
您应该在数量上使用parseInt()
,然后添加。这会奏效。目前,您正在尝试添加非整数的值。感谢
答案 1 :(得分:1)
看看这个例子。 我希望我理解你要做的事情。
.zip
&#13;
var queue = {};
var jsonobject = {
"11501": {
"Ingredient1ID": 1,
"Ingredient1Quantity": 2,
},
"11502": {
"Ingredient1ID": 2,
"Ingredient1Quantity": 2,
}
};
function addElement(e, t) {
var elementId = jsonobject[e]['Ingredient1ID'];
var elementQuantity = jsonobject[e]['Ingredient1Quantity'];
if (!(elementId in queue)) {
queue[elementId] = elementQuantity;
} else {
queue[elementId] += elementQuantity;
}
console.log(queue);
}
&#13;