Steamroller
对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。
思路:
(1)遍历arr,如果arr[i]是数组,就重新调用本函数继续循环,然后和新数组连接;
(2)如果不是数组,就直接添加进新数组;
知识点:
(1)Array.concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组;
(2)Array.push()方法将一个或多个元素添加到数组的末尾,并返回数组的新长度;
(3)Array.isArray()用于确定传递的值是否是一个 Array
。
代码:
1 function steamroller(arr) { 2 var newArr=[]; 3 for(var i=0;i<arr.length;i++){ 4 if(Array.isArray(arr[i])){ 5 //如果是数组,就重新调用本函数继续循环,然后和新数组连接 6 newArr=newArr.concat(steamroller(arr[i])); 7 }else{ 8 //如果不是数组,就直接添加进新数组 9 newArr.push(arr[i]); 10 } 11 } 12 return newArr; 13 } 14 steamroller([1, [2,222,[22,[2,[2]]]], [3, [[4]]]]);
时间: 2024-10-10 17:59:50