封裝排序方法,asc:公升序 desc:降序
let lessons = [, , , ]
function order(field, type = "asc")
}let hd = lessons.sort(order('a', 'desc'))
flat方法
array.prototype.flat()用於將巢狀的陣列「拉平」,變成一維陣列。該方法返回乙個新陣列,對原資料沒有影響。
[1, 2, [3, 4]].flat()
// [1, 2, 3, 4]
flat()預設只會「拉平」一層,如果想要「拉平」多層的巢狀陣列,可以將flat()方法的引數寫成乙個整數,表示想要拉平的層數,預設為1。
[1, 2, [3, [4, 5]]].flat()
// [1, 2, 3, [4, 5]]
[1, 2, [3, [4, 5]]].flat(2)
// [1, 2, 3, 4, 5]
如果不管有多少層巢狀,都要轉成一維陣列,可以用infinity關鍵字作為引數。
[1, [2, [3]]].flat(infinity)
// [1, 2, 3]
如果原陣列有空位,flat()方法會跳過空位。
[1, 2, , 4, 5].flat()
// [1, 2, 4, 5]
flatmap()方法對原陣列的每個成員執行乙個函式,相當於執行array.prototype.map(),然後對返回值組成的陣列執行flat()方法。該方法返回乙個新陣列,不改變原陣列。
// 相當於 [[2, 4], [3, 6], [4, 8]].flat()
[2, 3, 4].flatmap((x) => [x, x * 2])
// [2, 4, 3, 6, 4, 8]
**
js中flat方法的實現原理
let arr 1,2,3,4,5,12,3,zs 7,8,9,10,11,1,2,3,4 console.log arr.flat infinity 1,2,3,4,5,12,3,zs 7,8,9,10,11,1,2,3,4 1 首先進行型別判斷,需要判斷當前呼叫方法的this是否為乙個陣列,若不...
flat 多維陣列 拉平 ,變成一維陣列
array.flat 用於將巢狀的陣列 拉平 變成一維的陣列。該方法返回乙個新陣列,對原資料沒有影響。var arr flat 預設只會 拉平 一層,拉平多層可以將flat 方法的引數寫成乙個整數,表示想要拉平的層數。arr.flat 拉平一層 如果不管有多少層巢狀,都要轉成一維陣列,可以用infi...
es6中陣列的flat 和flatMap
今天看到一道題,把乙個巢狀的陣列扁平化於是想到es6有這麼一段操作 array.prototype.flat 用於將巢狀的陣列 拉平 變成一維陣列。該方法返回乙個新陣列,對原資料沒有影響 而且flat 預設只會 拉平 一層,如果要處理多層的巢狀陣列,可以將flat 方法的引數寫成乙個整數 1,2,3...