【发布时间】:2021-10-12 00:08:41
【问题描述】:
我是一个新手编码器,我正在尝试编写一个代码,如果平均值等于众数则返回 1,否则返回 0。到目前为止,我编写的代码只返回 0,即使它应该是 1。任何帮助或指出我出错的地方的提示将不胜感激!
function ArrayChallenge(arr) {
let sum = 0
let totalNum = arr.length
let mean = sum/totalNum
for (i=0; i < arr.length; i++) {
if (arr[i] > 0) {
sum+= arr[i]
}
}
const numList = {}
arr.forEach(elem => numList[elem] = numList[elem] + 1 || 1)
let mode = []
let numMax = 0
for (const key in numList) {
if(numList[key] > numMax) {
mode = [Number(key)]
numMax = numList[key]
} else if (numList[key] === numMax) {
mode.push(Number(key))
}
}
if (mode.length === Object.keys(numList). length) mode = []
if (mean === mode) {
return 1
} else return 0
}
【问题讨论】:
-
Mode 似乎是一个数组,而 mean 是一个数字。所以他们永远不可能相等
-
调试提示:什么是您认为应该相等的值?
标签: javascript arrays mean mode