我有一个形式的数组:[[null,1,2,null],[9],[2,null,null]]
我想要一个简单的函数来返回[1,2,9,2],正如你所看到的那样,消除了null。
我需要这个,因为数据库中的某些值是以这种形式返回的,然后我会使用返回的示例进行查询但没有空值。
谢谢!
答案 0 :(得分:4)
总是一层深的
var arr = [ [ null, 1, 2, null ], [ 9 ], [ 2, null, null ] ],
arr2 = [];
arr2 = (arr2.concat.apply(arr2, arr)).filter(Boolean);
答案 1 :(得分:4)
假设一个可能的嵌套数组结构:
var reduce = function(thing) {
var reduction = [];
// will be called for each array like thing
var loop = function(val) {
// an array?
if (val && typeof val === 'object' && val.length) {
// recurse that shi•
reduction = reduction.concat(reduce(val));
return;
}
if (val !== null) {
reduction.push(val);
}
};
thing.forEach(loop);
return reduction;
};
reduce([ [ null, 1, 2, null ], [ 9 ], [ 2, null, null ] ]);
// [1, 2, 9, 2]
reduce([1, 3, 0, [null, [undefined, "what", {a:'foo'}], 3], 9001]);
// [1, 3, 0, undefined, "what", Object, 3, 9001]
像这样?
答案 2 :(得分:1)