javascript - 使用 reduce 来缩短数组

标签 javascript

使用 reduce 查找项目在数组中的次数。 该数组可以递归地包含数组。

var foo = [
  1,
  [2, 3, 4], 
  4, [5,6,7], 4
];

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))

函数f 是一个递归函数。我们遍历所有项目并将它们减少为一个数字。该函数也会在所有内部数组上调用,对于非数组项,我们只需检查它们是否等于所需的项。

关于javascript - 使用 reduce 来缩短数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535645/

相关文章:

javascript - 需要通过ajax调用设置全局变量

javascript - Facebook javascript登录到PHP SDK

javascript - Awesomium - vb.net 获取 html 内容

javascript - Django - 从 {{STATIC_URL}} 转换为 {% static %}

javascript - 将 var 作为数字增加

javascript - 当填充发生变化时,如何让 Chrome 调整此 div 的大小?

javascript - 使用 location.href 重定向

javascript - 我可以使用 `µ` 作为 JavaScript 变量名吗?

javascript - 从 ASP 调用 JavaScript

javascript - 我如何使用 javascript 将这个 bootstrap html 表单传递到下一页?