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

有人能解释一下这段 JavaScript 代码是如何工作的吗?

如何解决有人能解释一下这段 JavaScript 代码是如何工作的吗?

我不明白...为什么他在这函数中使用 obj ,谁能解释一下它在做什么。

const yourArray = [37,32,97,35,76,62]
function equalizeArray(arr) {
  let obj = {},max = 1
  arr.forEach(el => {
      if (obj.hasOwnProperty(el)) {
          obj[el] = obj[el] + 1;
          if (obj[el] > max) {
              max = obj[el];
            }
        }
        else{
          obj[el] = 1
        }
  })
  return arr.length - max
}
console.log(equalizeArray(yourArray));

解决方法

据我所知,该函数的目的是计算数组中相同值的最大数量,然后从数组的长度中减去该最大数量 (max) 并返回该数量。

该函数使用对象 obj 将数组值存储为键,并将它们的重复计数作为这些键的值。

变量 max 跟踪最大重复次数,如果任何键的值大于 max,它会被重新分配。

然后函数返回array.length - max

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