如果之前有人问过这个问题,但我找不到答案,我深表歉意。如何循环遍历具有嵌套数组的数组并在控制台中打印出项目出现的实例数?
因此 console.log
应该打印出名称“bob”的数字 2,因为“bob”在数组中出现了两次。
这是我的数组和目前为止的内容:
var names = ["bob", ["steve", "michael", "bob", "chris"]];
function loop(arr, item) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] instanceof Array) {
loop(arr[i], item);
} else {
if (arr[i] == item) {
console.log(arr[i]);
}
}
}
}
loop(names, "bob");
最佳答案
在这里,请注意,您可以在内部保留计数器值,以保持代码的其余部分更简洁:
var names = ["bob", ["steve", "michael", "bob", "chris"]];
function loop(arr, item) {
var result = 0;
for (var i = 0; i < arr.length; i++) {
if (arr[i] instanceof Array) {
result += loop(arr[i], item);
} else {
if (arr[i] == item) {
result++;
}
}
}
return result;
}
var result = loop(names, "bob");
console.log(result);
关于javascript - 递归循环数组并返回项目数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35874640/