计算数组对象并创建键/值对作为输出

时间:2019-02-04 21:32:41

标签: javascript

如何计算javascript数组中某个对象的出现次数,然后将其与该对象相关联。例如: 如果我的数组是:[4,5,5,4,5,3,3,5,4,3] 我将如何获得一个键/值对,该对将计算对象发生多少次以及对象是什么。所以我要寻找的输出是:{3:3, 4:3, 5:4}表示3次发生3次,4次发生3次和5次发生4次。

2 个答案:

答案 0 :(得分:2)

您可以使用Array.prototype.reduce()遍历数组。函数中的累加器将是一个普通对象{},在每次迭代中,您只需检查数组的项是否是对象中的键:

  • 如果不是,则创建一个新密钥,并将其计数为1
  • 如果是,则访问预先存在的密钥并将其计数增加1

const arr = [4,5,5,4,5,3,3,5,4,3];

const keyedArr = arr.reduce((accumulator, currentValue) => {
  const key = currentValue.toString();
  if (!(key in accumulator))
    accumulator[key] = 1;
  else
    accumulator[key] += 1;
    
  return accumulator;
}, {});
console.log(keyedArr);

答案 1 :(得分:1)

您可以使用npm start --dev=true简洁地完成此操作:

reduce