陣列扁平化就是將乙個多維陣列轉換為乙個一維陣列
實現基本方式
1、對陣列的每一項進行遍歷。
2、判斷該項是否是陣列。
3、如果該項不是陣列則將其直接放進新陣列。
4、是陣列則回到1,繼續迭代。
5、當陣列遍歷完成,返回這個新陣列。
array.prototype.
flatten
=function()
else
}return resultarr;
}var arr=[1
,2,3
,[4,
5,'hello',[
'world',9
,666]]
]console.
log(arr.
flatten()
)//[1, 2, 3, 4, 5, "hello", "world", 9, 666]
array.prototype.
flatten
=function()
,);}
function
*itertree
(tree)
}else
}let arr1 =[1
,2,[
'a',
'b',
['中'
,'文',[
1,2,
3,[11
,21,31
]]]]
,3];
let list=
for(
const x of
itertree
(arr1)
)console.
log(list)
;//[1, 2, "a", "b", "中", "文", 1, 2, 3, 11, 21, 31, 3]
let arr1 =[1
,2,[
'a',
'b',
['中'
,'文',[
1,2,
3,[11
,21,31
]]]]
,3];
console.
log( arr1.
flat
(infinity))
;
//es6 增加了擴充套件運算子,用於取出引數物件的所有可遍歷屬性,拷貝到當前物件之中:
var arr =[1
,[2,
[3,4
]]];
console.
log(
.concat
(...arr));
// [1, 2, [3, 4]]
//我們用這種方法只可以扁平一層,但是順著這個方法一直思考,我們可以寫出這樣的方法:
// 改進
var arr =[1
,[2,
[3,4
]]];
function
flatten
(arr)
return arr;
}console.
log(
flatten
(arr)
)
陣列扁平化
原陣列 const arr 1,2,3,4 5,6,7,8 9 希望輸出 1,2,3,4,5,6,7,8,9 方法一 遞迴 function arrdelayering arr else return newarr let newarr arrdelayering arr 1,2,3,4,5,6,7...
陣列扁平化
今天看到了陣列扁平化處理,猶記得之前面試被問到過,下面介紹一下陣列扁平化處理的幾種形式 題目要求 將陣列 arr 1,2,3,4,5,6,7,8,9 轉化為 1,2,3,4,5,6,7,8,9 1 遞迴 var arr 1,2,3,4,5,6,7,8,9 方法一 遞迴 function flatfu...
扁平化陣列
第一次遇到陣列扁平化已經是在3k遊戲的筆試題裡,當時是用了遞迴的方法。因為對一些陣列方法,字串方法十分的不熟練 扁平化陣列的核心都是,遍歷陣列元素,遇到陣列就拆,不是陣列就加進去。var arr 1,2,3,4,5 console.log bianpinghua arr tostring split...