判断数组中有没有其中一个value

[{name:'123',num:'1'},{name:'456',num:'1'},{name:'789',num:'1'}]

就是相当于我有一个name:'000'

看一下在这个数组中有没有这个值

如果有 那么这个num+1

没有push一个 {name:'000',num:'1'}

阅读 2.5k
3 个回答

首先,你这个num属性的值应该是数字吧。

还有,吐槽一下,你数组中的第二个逗号是中文符号。。

最简单最暴力的方法就是:

let hasValue = false;
for (let i = 0; i < arr.length; i += 1) {
  if (arr[i].name === '000') {
    hasValue = true;
    arr[i].num = arr[i].num + 1;
  }
}
if(!hasValue){
  arr.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])}))

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题