JavaScript - 过滤嵌套数组

Ste*_*eve 9 javascript arrays

我正试图在javascript中过滤一个数组,并且当数组嵌套时我正在努力.

目前,我能够得到的最远的是过滤扁平阵列:

var ID = 3

var arr = [{ id : 1, name: "a" }, { id : 2, name: "b" }, { id : 3, name: "c" }]

var result = arr.filter(function( obj ) {return obj.id == ID;});
alert(result[0].name);
Run Code Online (Sandbox Code Playgroud)

虽然如果数组看起来像这样,上面的代码不起作用:

var arr2 = [
    [{ id : 1, name: "a" },{ id : 2, name: "b" }],
    [{ id : 3, name: "c" },{ id : 4, name: "d" }]
] 
Run Code Online (Sandbox Code Playgroud)

可以找到两个例子:https://jsfiddle.net/vjt45xv4/

任何有关在嵌套数组上找到适当结果的提示都将非常感激.

谢谢!

Joh*_*ler 13

展平数组然后过滤它:

arr.reduce(function(a,b) { return a.concat(b);  })
   .filter(function(obj) { return obj.id == ID; });
Run Code Online (Sandbox Code Playgroud)