2026年4月27日 星期一

再探 Array.toSorted()

 再探 Array.toSorted()

前言

  在先前 初探 Array.toSorted() 介紹 Array.toSorted() ,Array.toSorted()可以支援更換比較方法,但實際使用後有一些根想的不一樣,在此把學習的過程做個紀錄。


內容

  範例如下

let ar = ["Jan", "Feb", "Mar", "Apr"];
let numAr = [ 1 , 3 , 2 , 4 ];
//
console.log( ar.toSorted() );//["Apr", "Feb", "Jan", "Mar"]
console.log( ar.toSorted( (a , b) => a.toLowerCase().localeCompare(b.toLowerCase() ) ) );//["Apr", "Feb", "Jan", "Mar"]
console.log( ar.toSorted( (a , b) => b.toLowerCase().localeCompare(a.toLowerCase() ) ) );//["Mar", "Jan", "Feb", "Apr"]
//

console.log( numAr.toSorted() );//[1, 2, 3, 4]
console.log( numAr.toSorted( ( a , b ) => a - b) );//[1, 2, 3, 4]
console.log( numAr.toSorted( ( a , b ) => b - a) );//[4, 3, 2, 1]


只要再輸入比較方法就可更換比較方法,不過根想得不太一樣,不一樣的是比較手段不是用大於小於,而是字串與數字有各自的預設的比較手段,範例都是先預設比較,在替代等效預設比較,再來替代成跟預設比較相反的結果。


參考資料

[ developer.mozilla.org ] Array.prototype.toSorted()


相關文章與資料

初探 Array.toSorted()

2026年4月20日 星期一

再探 Array.toSpliced()

 再探 Array.toSpliced()

前言

  在之前的 初探 Array.toSpliced() 介紹裁掉的功能,但 Array.toSpliced() 不只是裁掉的功能,還能做出插入的功能,在此把學習的功能做個紀錄。


內容

  範例如下

let ar = ["Jan", "Feb", "Mar", "Apr"];
//
console.log( ar.toSpliced( 2 , 2 , '1111') );//["Jan", "Feb", "1111"]
console.log( ar.toSpliced( 0 , 2 , '1111','2222') );//["1111", "2222", "Mar", "Apr"]
console.log( ar.toSpliced( 1 , 2 , '1111','2222') );//["Jan", "1111", "2222", "Apr"]
console.log( ar.toSpliced( 1 , 0 , '1111','2222','3333') );//["Jan", "1111", "2222", "3333", "Feb", "Mar", "Apr"]


要使用插入的功能,只要在兩個數字引數後以增加引數的方式個別填入藥插入的資料即可。第一例是從索引 2 刪除 2 個內容再插入 "1111",第二例就是插入兩個資料,索引 0 刪除 2 個內容後再插入內容,可以看到第一與第二個被刪除後插入了我們輸入的內容,第三立在原本陣列的中間刪除內容再插入。最後一例可以發現只要將第二的引數輸入 0 ,就等於是從輸入的索引開始插入內容,不會刪除內容。


參考資料

[ developer.mozilla.org ] Array.prototype.toSpliced()


相關文章與資料

初探 Array.toSorted()

初探 Array.toReversed()

初探 Array.toSpliced()


2026年4月13日 星期一

初探 Array.toSpliced()

 初探 Array.toSpliced()

前言

  Array 提供裁減內容的方法,而且不會改變原本 Array 的內容,也就是 Array.toSpliced() ,在此把學習的過程做個紀錄。


內容

  範例如下

let ar = ["Jan", "Feb", "Mar", "Apr"];
//
console.log( ar.toSpliced( 2 ) );//["Jan", "Feb"]
//
console.log( ar.toSpliced( 0 , 3 ) );//["Apr"]
console.log( ar.toSpliced( 0 , 0 ) );//["Jan", "Feb", "Mar", "Apr"]
console.log( ar.toSpliced( 1 , 2 ) );//["Jan", "Apr"]
console.log( ar.toSpliced( 4 , 1 ) );//["Jan", "Feb", "Mar", "Apr"]
//
console.log( ar );//["Jan", "Feb", "Mar", "Apr"]


Array.toSpliced() 當輸入只有一個引數時,功能是從引數(索引值)以後全部裁掉,所以範例只剩頭兩個。如果輸入兩個引數,意思是從引數0(索引值)開始裁減引數1(數量),所以範例 toSpliced( 0 , 3 ) 只剩最後一個內容, toSpliced( 0 , 0 ) 要注意到引數1(數量)可以是 0 ,所以結果等於不裁減,接著, toSpliced( 1 , 2 )  的結果是中間兩個內容被裁減,最後看到   toSpliced( 4 , 1 ) ,引數0(索引值)超出陣列的數量,這樣也等於沒裁減。要注意, Array.toSpliced() 是產生一個新的 Array ,所以 ar 的內容永遠不會改變。


參考資料

[ developer.mozilla.org ] Array.prototype.toSpliced()


相關文章與資料

初探 Array.toSorted()

初探 Array.toReversed()

2026年4月5日 星期日

初探 Array.toReversed()

 初探 Array.toReversed()

前言

  Array 提供直接將所有的內容倒過來的功能,也就是 Array.toReversed() ,在此把學習的過程做個紀錄。


內容

  範例如下

let ar = ["Jan", "Feb", "Mar", "Apr"];
console.log( ar.toReversed() );//["Apr", "Mar", "Feb", "Jan"]
console.log( ar );//["Jan", "Feb", "Mar", "Apr"]


Array.toReversed() 用起來的特性類似 初探 Array.toSorted() ,都是產生一個新的 Array 來得到結果,所以可以看到在 Array.toReversed() 後,原本的內容並不會改變。


參考資料

[ developer.mozilla.org ] Array.prototype.toReversed()


相關文章與資料

初探 Array.toSorted()