我有一个形式的数组: [ [ null, 1, 2, null ], [ 9 ], [ 2, null, null ] ]
我想要一个简单的函数来返回我 [ 1, 2, 9, 2 ],如您所见,它消除了空值。
我需要这个,因为数据库中的某些值以这种形式返回,然后我会使用返回的示例进行查询,但没有空值。
谢谢!
我有一个形式的数组: [ [ null, 1, 2, null ], [ 9 ], [ 2, null, null ] ]
我想要一个简单的函数来返回我 [ 1, 2, 9, 2 ],如您所见,它消除了空值。
我需要这个,因为数据库中的某些值以这种形式返回,然后我会使用返回的示例进行查询,但没有空值。
谢谢!
总是一层深
var arr = [ [ null, 1, 2, null ], [ 9 ], [ 2, null, null ] ],
arr2 = [];
arr2 = (arr2.concat.apply(arr2, arr)).filter(Boolean);
假设一个可能的嵌套数组结构:
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]
像这样?