方法一 :递归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();