如果以前有人问过这个问题,我很抱歉,但我找不到答案。如何循环使用嵌套数组的数组,并在控制台中打印项目出现的实例数?
因此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");
您还可以使用reduce
var names = ['bob', ['steve', 'michael', 'bob', 'chris', ['bob']]];
function count(item, items) {
return items.reduce(function(sum, x) {
if (Array.isArray(x)) return sum + count(item, x);
if (x === item) return sum + 1;
return sum;
}, 0);
}
count('bob', names); // => 3
另一种选择是使用更通用的函数并将它们链接在一起。
[1,[2,3,4,5,[6]]]
=看起来像这样
flatten(names).filter(x => x === 'bob').length
我将把flant
的实现留给您作为练习
你需要一个柜台
js lang-js prettyprint-override">function loop(arr, item) {
var count = 0;
for (var i = 0; i < arr.length; i++) {
if (arr[i] instanceof Array) {
count += loop(arr[i], item);
} else {
if (arr[i] == item) {
count++;
console.log(arr[i]);
}
}
}
return count;
}
var names = ["bob", ["steve", "michael", "bob", "chris"]],
count = loop(names, "bob");
document.write(count);
在这里,请注意,您可以在内部保留计数器值,以保持代码的其余部分更干净:
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);
问题内容: 我想重复创建div,这些项目是函数返回的对象。但是,以下代码报告错误:达到10个$ digest()迭代。流产!jsfiddle在这里:http://jsfiddle.net/BraveOstrich/awnqm/ 问题答案: 简短的回答 :您真的需要这样的功能还是可以使用属性?http://jsfiddle.net/awnqm/1/ 长答案 为简单起见,我仅描述您的情况-ngRepe
我写了3个方法来实现递归合并排序,参数数量有限(没有aux、lo、mid、hi)。我认为我的工作是这样的,但它并没有返回一个排序数组,尽管它在运行时没有任何编译错误。我已经摆弄了4个小时,似乎无法弄清楚我做错了什么,没有合并一个有序数组。我只从我的助教那里得到了非常模糊的输入,并且能够修复我正在遇到的一些问题,但是该方法仍然没有对项数组进行排序。欢迎任何关于我在这里做错了什么的建议。谢谢!
如何在javascript中递归循环json对象数据键。 请检查以下json对象:
问题内容: 我正在尝试显示10位玩家的表格。我通过ajax获取数据,并将其作为道具传递给我的孩子。 现在,我需要一个列表组件来渲染播放器: 这给了我一个。 我不确定发生了什么,我的控制台日志显示了正确的数据,但是以某种方式我无法在返回中访问它。 我想念什么? 问题答案: 在组件中,您需要更改初始状态,因为您正在尝试使用for,但是此属性是导致错误的原因。 此外,如在是你应该从它那里得到的属性
我接受了一次采访,被问到一个问题,我想了解解决方案。 创建一个递归函数,该函数返回给定长度的数组的可能组合数,这些数组可以由非重复连续整数数组组成。 f(数组,长度)=组合 数组=[0,1,2,3] 长度=2 组合=10(所有组合:[0,0][0,1][0,2][0,3][1,1][1,2][1,3][2,2][2,3][3,3]) 请注意,允许使用[0,0],但不允许使用[1,0],因为定义了[
我有一个递归函数,它会重复这个函数,直到不满足if条件,然后输出一个整数。但是,此函数之外需要整数的函数正在接收一个单位。我应该如何修改代码以返回int? 这就是整个程序 }