使用reduce查找项目在数组中的次数.该数组可以递归地具有数组.
var foo = [
1,
[2, 3, 4],
4, [5,6,7], 4
];
Run Code Online (Sandbox Code Playgroud)
bar(foo, 4) 将返回3.
尝试使用这个Array.prototype.reduce。
var foo = [1, [2, 3, 4], 4, [5, 6, 7], 4];
function f(arr, item) {
return arr.reduce(function (s, i) {
if (Array.isArray(i)) return s+f(i, item);
return s+(i==item?1:0);
}, 0);
}
console.log(f(foo, 4))Run Code Online (Sandbox Code Playgroud)
该函数f是一个递归函数。我们循环遍历所有项目并将它们减少到一个数字。该函数也会在所有内部数组上调用,对于非数组项,我们只需检查它们是否等于所需的项。
| 归档时间: |
|
| 查看次数: |
326 次 |
| 最近记录: |