方法一 :递归
function parseArr(arr,res){
var i=0;
for(i=0;i<arr.length;i++){
if(arr[i] instanceof Array){
parseArr(arr[i],res);
}else{
res.push(arr[i]);
}
}
}
var a=[1,[2,[3,4]],5,6];
var res=[];
parseArr(a,res);
方法二: 使用toString先变成一个字符串再使用split变成一个字符串数组
(数组中的每个元素是一个字符串),最后使用map方法将数组中的每个元素返回为非字符串。
var arr=a.toString().split(',').map(function(ele){
return +ele;
});
alert(typeof arr[0]); //
方法三: 使用reduce和concat方法
Array.prototype.flatten=function(){
return this.reduce(function(prev, cur) {
var moreArr = [].concat(cur).some(Array.isArray); //判断cur是不是一个数组
return prev.concat(moreArr ? cur.flatten() : cur);
},[]);
};
var arr=a.flatten();