[{name:'123',num:'1'},{name:'456',num:'1'},{name:'789',num:'1'}]
就是相当于我有一个name:'000'
看一下在这个数组中有没有这个值
如果有 那么这个num+1
没有push一个 {name:'000',num:'1'}
[{name:'123',num:'1'},{name:'456',num:'1'},{name:'789',num:'1'}]
就是相当于我有一个name:'000'
看一下在这个数组中有没有这个值
如果有 那么这个num+1
没有push一个 {name:'000',num:'1'}
arr = [{name:'123',num:'1'},{name:'456',num:'1'},{name:'789',num:'1'}]
改为 map = {'123': 1, '456': 1, '798': 1}
然后重复 map[key] = map[key] ? map[key] + 1: 1
过一遍所有数据
然后 Object.keys(map).forEach(name => newArr.push({name, num: String(map[name])}))
var arr = [{name:'123',num:'1'},{name:'456',num:'1'},{name:'789',num:'1'}];
var hasValue = arr.some(item => {
return item.name === '000';
});
if(!hasValue){
arr.push({name:'000',num:'1'});
}
console.log(arr);
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答872 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
首先,你这个
num
属性的值应该是数字吧。还有,吐槽一下,你数组中的第二个逗号
,
是中文符号。。最简单最暴力的方法就是: