我有一个JSON对象,如下所示:
var JSON = {
"implants":[{
"familyId": "3",
"reference": "1234",
"quantity": "3"
},{
"familyId": "2",
"reference": "3456",
"quantity": "1"
}]
}
我正在构建一个功能,用于搜索具有给定"参考"已经在数组中。如果不是,它就会被添加到数组中。简单。如果是在数组中,那么我想将新数量添加到现有数量,然后更新数组。
function returnTheseImplantsWhere(key1,key2){
return function(el){
if(el[key1]==key2) {
return el;
}
}
}
var activeCaseImplants = JSON.parse(getLocal("activeCaseImplants"));
var existingImplant = activeCaseImplants.implants.filter(returnTheseImplantsWhere("reference", window.currentImplantRef));
if(existingImplant.length) {
//previously added implant
newImplantQty = Number(existingImplant[0].quantity) + Number($("#qty").val());
existingImplant.quantity = newImplantQty;
} else {
//new implant
}
我的问题涉及以前添加的植入物"以上代码的部分(全部按预期工作)。我现在有更新的数量,但我可以确定activeCaseImplants.implants数组中的哪个对象需要更新数量?我觉得我可以在indexOf
开头的某个地方使用var existingImplant = ...
,但我不知道在哪里或如何。有什么想法吗?