如何解决使用对象检查项目在数组中的出现
- 我运行了代码,但是发现我必须使用cal [item]将项目放入对象内部的数组中。为什么cal.item的旧方法不起作用?
- 我尝试使用如下所示的“ 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 举报,一经查实,本站将立刻删除。