我需要节点专家的帮助......我必须使用的版本是0.10.x
我有一个这样的数组:
[
[ 'ABC', '5' ] ,
[ 'BCD', '1' ]
]
我有新的值可以输入[ 'DDD', '3' ]
和[ 'ABC', '4' ]
,我想要实现的是搜索第一列是否存在于数组中 - 如果是,则总结第二列,如果不是仅添加值到阵列。
结果我希望有:
添加[ 'DDD', '3' ]
- 数组中不存在DDD将添加
[
[ 'ABC', '5' ] ,
[ 'BCD', '1' ] ,
[ 'DDD', '3' ]
]
添加[ 'ABC', '4' ]
- ABC存在于数组中,因此第二列将为ABC总结
[
[ 'ABC', '9' ] ,
[ 'BCD', '1' ] ,
[ 'DDD', '3' ]
]
请帮忙
答案 0 :(得分:0)
您的对象初始值:
var myObj = [{'ABC': '5'}, {'BCD': '1'}]
现在如果DDD
不存在,只需添加它:
var DDD = "3"
var DDDExists = false;
myObj.forEach(function(){
if(this.DDD.length > 0){
// If it exists, break the loop
DDDExists = true;
break;
}
})
// If DDD doesn't exists, add it
if(DDDExists === false){
// Add DDD object to array
myObj.push({'DDD': 3});
}
如果ABC
存在,请将ABC
加到所有可用值中:
// Check if ABC exists
var ABCExsits = false;
myObj.forEach(function(){
if(this.ABC.length > 0){
// If ABC exits, break the loop
ABCExists = true;
break;
}
})
if(ABCExists === true){
// Sum all the values
var totalSum = 0;
myObj.forEach(function(){
// Since we don't know the name property of the obj, we need to do a for loop
for(var prop in this){
totalSum = totalSum + this[prop];
}
})
// Now add `totalSum` to ABC
myObj.foreach(function(){
if(this.ABC.length > 0){
this.ABC = totalSum;
break;
}
})
}