當數(shù)組只有2層時
function flattenArr(arr) {
var result = [];
function flatten(arr) {
for(var i = 0; i < arr.length; i++) {
if(Array.isArray(arr[i])){
flatten(arr[i]);
}else{
result.push(arr[i]);
}
}
}
flatten(arr);
return result;
}
這里可以使用 concat
function flatten2d(arr) {
var result = [];
for(var i = 0;i<arr.length;i++) {
result = result.concat(arr[i]);
}
}
在優(yōu)化一步 使用apply(context , [arguments])
function flatten2d(arr) {
return Array.prototype.concat.apply([],arr);
}
當數(shù)組有多維時杯缺,使用遞歸
function flattenMd(arr) {
var result = [];
for(var i = 0; i<arr.length;i++){
if(arr[i] instanceof Array) {
result = result.concat(flattenMd(arr[i]));
}else{
result.push(arr[i]);
}
}
return result;
}