2026年6月22日 星期一

關於 Map.getOrInsert()

 關於 Map.getOrInsert()

前言

  最近發現 Map 本身有提供取得內容如果沒有的話就自動插入的功能,也就是 Map.getOrInsert() ,在此把學習的過程做個紀錄。


內容

  範例如下

let map = new Map();
map.set( 'A' , 1234 );
map.set( 'B' , 5678 );
//
console.log( map.get( 'A') );//1234
console.log( map.get( 'a') );//undefined
//
console.log( map.getOrInsert( 'A' , 9999) );//1234
console.log( map.getOrInsert( 'C' , 9999) );//9999
console.log( map.get( 'C') );//9999


Map.getOrInsert()  的用法只比 Map.get() 多一個引數,也就是當見直不存在要插入的的內容,範例開頭分別示範用  Map.get() 取得存在與不存在的鍵值狀況,接著就是 Map.getOrInsert() 取得已存在鍵值,結果跟 Map.get()  ,第二次就取得不存在的鍵值,由於不存在所以會被插入成一個新鍵值,內容就是第二個引數的內容,最後 Map.get() 確認新的鍵值是否有被確實的插入。

 

參考資料

[ developer.mozilla.org ] Map.prototype.getOrInsert()

2026年6月15日 星期一

關於 Array.unshift()

 關於 Array.unshift()

前言

  最近需要在陣列的開頭插入元素,發現有 Array.unshift() 可以完成,在此把學習的過程做個紀錄。


內容

  範例如下

let ar = [ 1 , 2 , 3 ];
ar.unshift( 0 );
console.log( ar );//[0, 1, 2, 3]
//
ar.unshift( -1 );
console.log( ar );//[-1, 0, 1, 2, 3]
//
ar.unshift( -4 , -3 , -2);
console.log( ar );//[-4, -3, -2, -1, 0, 1, 2, 3]


Array.unshift() 的使用很簡單,只需將要插入到開頭的元素放到引數就行,而且還支援輸入多個引數,如範例最後所示。


參考資料

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

2026年6月8日 星期一

關於 Array.from()

 關於 Array.from()

前言

  Array.from() 是一個複製陣列的函式,它有著 Array 建構式是沒有的特性,在此把學習的過程做個紀錄。


內容

  範例如下

console.log( Array.from( [1 , 2 , 3 ] ) );//[1, 2, 3]
console.log( Array.from( [1 , 2 , 3 ] , (ele) => ele + 1 ) );//[2, 3, 4]
//
console.log( Array.from( 'Hello') );//["H", "e", "l", "l", "o"]


Array.from() 直接輸入一個陣列就可以複製出一個一樣陣列,Array 建構式也可以做出類似的事,但 Array.from()  可以多輸入一個函式來對複製的內容加工,範例對每個內容作加一。 Array.from() 還支援一個特別的用法就是如果輸入一個字串,它會複製出一個把字串的每個字拆成元素的陣列,如範例最後一例所示。


參考資料

[ developer.mozilla.org ] Array.from()

2026年6月1日 星期一

關於 Array.filter()

 關於 Array.filter()

前言

  在 Array 提取符合某個條件的元素是很常見的功能,可以透過 Array.filter() 來完成,在此把學習的過程做個紀錄。


內容

  範例如下

let ar = [2, 5, 8, 1, 4];
let strAr = [ 'A123' , 'ABCDEF' , 'xyz'];
//
console.log( ar.filter( (ele) => ele>=5) );//[5, 8]
console.log( strAr.filter( (ele) => ele.length>=5) );//["ABCDEF"]
console.log( strAr.filter( (ele) => ele.length>=10) );//[]


Array.filter() 輸入篩選條件的函式後,就可以在回傳值得到符合條件的結果,如果沒有符合的結果會回傳空陣列而不是 undefined。


參考資料

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

2026年5月25日 星期一

關於 Array.reduceRight()

 關於 Array.reduceRight() 

前言

  在之前的 關於 Array.reduce() 學習了 Array.reduce() ,這次來學習 Array.reduceRight()  ,在此把學習的過程做個紀錄。


內容

  範例如下

let ar = [ 1, 2, 3, 4 ];
let sum = ar.reduceRight( 
  ( previousValue , currentValue) =>{
    console.log(currentValue);
    return previousValue+currentValue ;
  }, 
  0
);
// 4
// 3
// 2
// 1

console.log( `sum:${sum}`);//10


Array.reduceRight() 的用法和 Array.reduce()  是一樣的,差別是陣列瀏覽的順序是倒過來的!範例會在每次瀏覽時列印數值,可以知道是反著瀏覽陣列。


參考資料

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


相關文章與資料

關於 Array.reduce()

2026年5月18日 星期一

關於 Array.join()

 關於 Array.join()

前言

  要列印陣列的內容要怎麼做呢?直接列印是個方法,不過還可以透過 Array.join() ,它的作用非常適合拿來列印,最近才發現,在此把學習的過程做個紀錄。


內容

  範例如下

const ar = [2, 'abc', 3, 'def', 9, 'ghi' ];
console.log( ar.join() );//2,abc,3,def,9,ghi
console.log( ar.join( '_' ) );//2_abc_3_def_9_ghi
console.log( `[${ar.join() }]`);//[2,abc,3,def,9,ghi]
console.log(ar);//[2, "abc", 3, "def", 9, "ghi"]


Array.join() 的功能是輸出每個內容用"分隔符號"隔開的字串,如不輸入引數,"分隔符號"就是 , ,如果輸入引數就是按照輸入的內容當"分隔符號",範例的前兩例可以看到有輸入跟沒輸入引數的差異,剩下就示範直接輸入與透過 `` 來產生內容的差異,差異是預設輸出的字串一定會有 "" ,如果是透過`` 來產生內容就可以不產生。


參考資料

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

2026年5月11日 星期一

再探 Array.indexof()

 再探 Array.indexof()

前言

  在先前的 關於 Array.indexof() 介紹基本用法,發現未介紹它其實可以像 關於 String.indexOf() 指定從某個位址開始找,並不一定要找第一個,在此把學習的過程做個紀錄。


內容

  範例如下

const array = [2, 9, 3, 4, 9, 8 ];
console.log( array.indexOf( 9 ) );//1
console.log( array.indexOf( 9 , 2 ) );//4
console.log( array.indexOf( 9 , 99 ) );//-1


用法和  關於 String.indexOf() 一樣,只要透過第二個引數來指定開始找的索引,範例開始依舊方法找第一個,第二例就指定從 2 開始找,所以找到的是第二個 9 的索引,這個指定所以是可以大於陣列的大小的,只是結果一定是 -1 (找不到) 。

 

參考資料

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


相關文章與資料

關於 String.indexOf()

關於 Array.includes()

關於 Array.indexof()