Array.prototype.flat() (扁平化陣列 )
阿新 • • 發佈:2021-02-03
技術標籤:javascriptjavascriptvue.jses6arrayhtml5
扁平化陣列 Array.prototype.flat方法
使用方法總結
1. Array.prototype.flat() 用於將巢狀的陣列“拉平”,變成一維的陣列。該方法返回一個新陣列,對原資料沒有影響。 2. 不傳引數時,預設“拉平”一層,可以傳入一個整數,表示想要“拉平”的層數。 3. 傳入 引數<=0 的整數將返回原陣列,不“拉平”。 4. Infinity 關鍵字作為引數時,無論多少層巢狀,都會轉為一維陣列。 5. 如果原陣列有空位,Array.prototype.flat() 會跳過空位。
程式碼示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var _array = ['蘋果',["狗","貓"],["動物",["家禽",["鴨"]]]]
//1、不傳遞任何引數的時候,預設“拉平一層”
var _arrayOne = _array.flat()
var _arrayTwo = _array.flat(1)
console.log(_arrayOne) //['蘋果',"狗","貓","動物",["家禽",["鴨"]]]
console.log(_arrayTwo)//['蘋果',"狗","貓","動物",["家禽",["鴨"]]]
//2、傳入一個整數引數,這個整數引數就是拉平的層數
var _arrayThree = _array.flat(2)
var _arrayFour = _array.flat(3)
console.log(_arrayThree)//['蘋果',"狗","貓","動物","家禽",["鴨"]]
console.log(_arrayFour)//['蘋果',"狗","貓","動物","家禽","鴨"]
//3、Infinity 關鍵字作為引數時,無論多少層巢狀,都會轉為一維陣列
var _arrayFive = _array.flat(Infinity)
console.log(_arrayFive)//['蘋果',"狗","貓","動物","家禽","鴨"]
//4、傳入引數<=0 的整數將返回原陣列,不“拉平”。
var _arraySix = _array.flat(0)
console.log(_arraySix) //['蘋果',["狗","貓"],["動物",["家禽",["鴨"]]]]
//5、如果原陣列有空位,flat() 會跳過空位
var _array = ['蘋果',"狗","貓", ,,]
console.log(_array.flat()) //['蘋果',"狗","貓"] 會直接把空格還有空值給越過去,但是如果是""(空字串就不會越過)
</script>
</body>
</html>