javascript - 我被困在一个 JavaScript 函数中,该函数应该计算数组中的所有唯一项

标签 javascript arrays function

我想创建一个函数,计算数组中的所有唯一项目,但不知何故我没有得到任何输出。 这是我的阵! let arr = ["hi", "hello", "hi"];

这是我到目前为止编写的代码:

function countUnique(arr) {
  var counts = {};
  for (var i = 0; i < arr.length; i++) {
    counts[arr[i]] = 1 + (counts[arr[i]] || 0);
  }

  countUnique(arr);
}

console.log(countUnique(arr));

最佳答案

您正在正确地计算值,但是您递归地调用此方法 countUnique(arr); 并导致调用堆栈超出错误。 因此,只需删除方法 countUnique(arr); 的递归调用并返回计数值 counts:

function countUnique(arr) {
  var counts = {};
  for (var i = 0; i < arr.length; i++) {
    counts[arr[i]] = 1 + (counts[arr[i]] || 0);
  }

  return counts;
}

let arr = ["hi", "hello", "hi"];
console.log(countUnique(arr));

JavaScript 引擎限制最大递归深度。 We can rely on it being 10000, some engines allow more.

关于javascript - 我被困在一个 JavaScript 函数中,该函数应该计算数组中的所有唯一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60693271/

相关文章:

c++ - 访问类型定义的指针数组的元素

C - 如何返回多个字符

javascript - $jquery.post() PHP 和 Mysql

javascript - 为什么 myvar = $(this) 之后 myvar 未定义

arrays - 返回没有具有更新索引的第一个元素的数组(Swift)

function - Chrome - 评估 - 函数()

javascript - 编写一个函数,将数组中的每一项加倍

javascript - 无法使用 jquery 选择特定元素

javascript - 防止网页在表单提交时滚动到顶部

php - array 上的 strlen 在 php 中返回 5