我想创建一个函数,计算数组中的所有唯一项目,但不知何故我没有得到任何输出。
这是我的阵!
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/