对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。
这是一些对你有帮助的资源:
刚开始不知道迭代,所以傻呵呵的写了一堆代码
function steamroller(arr) { var result=[]; for(var i=0;i<arr.length;i++){ if(Array.isArray(arr[i])){ for(var j=0;j<arr[i].length;j++){ if(Array.isArray(arr[i][j])){ for(var k=0;k<arr[i][j].length;k++){ if(Array.isArray(arr[i][j][k])){ for(var n=0;n<arr[i][j][k].length;n++){ if(Array.isArray(arr[i][j][k][n])){ //这里是bug,我写不下去了 .—_—. } else{ result.push(arr[i][j][k][n]); } } }else{ result.push(arr[i][j][k]); } } }else{ result.push(arr[i][j]); } } }else{ result.push(arr[i]); } } return result; }
看到某大神的解法如下
function steamroller(arr) { var result = []; for(var i = 0; i < arr.length; i++){ if(Array.isArray(arr[i])){ result = result.concat(steamroller(arr[i])); }else{ result.push(arr[i]); } } return result; }