微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用对象检查项目在数组中的出现

如何解决使用对象检查项目在数组中的出现

  1. 我运行了代码,但是发现我必须使用cal [item]将项目放入对象内部的数组中。为什么cal.item的旧方法不起作用?
  2. 我尝试使用如下所示的“ if + else”并仅使用“ if”,结果有所不同,“ if”版本为我提供了正确的答案。但我不明白为什么它会导致计算流程不同。

谢谢您的帮助。

const number = "3 5 30 31 43 48 2 11 13 45 46 49 11 14 21 28 37 44 18 29 32 33 36 40 2 20 24 30 32 46 5 17 35 37 42 49 1 24 25 27 31 37 15 17 29 30 34 37 5 10 18 20 28 33 1 22 25 27 31 36"
const array = number.split(" ")
const cal = {}
for (const item of array){
    if(cal.item == null){
        cal.item = 0
    }else{
        cal.item += 1;
    }
}
console.log(cal)

解决方法

您可以使用reduce来实现

const number =
  "3 5 30 31 43 48 2 11 13 45 46 49 11 14 21 28 37 44 18 29 32 33 36 40 2 20 24 30 32 46 5 17 35 37 42 49 1 24 25 27 31 37 15 17 29 30 34 37 5 10 18 20 28 33 1 22 25 27 31 36"

const array = number.split(" ")

const occurrences = array.reduce((acc,el) => {
  acc[el] = (acc[el] || 0) + 1
  return acc
},{})

console.log(occurrences)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。