iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0

includes ,有兩個參數可以傳入,第一個是要搜尋的值,第二個是要搜尋的位置,預設值為0,也就是第一個值,特性是判斷陣列是否包含特定的元素,並回傳布林值,繼續用前一天的 a 來示範,a裡面有4個數字,分別是1、2、3、4,今天我們要找2是不是有在這個陣列之中,可以用 :

const a = [ 1, 2, 3, 4 ] ;
a.includes ( 2 ) ;

會回傳true這個布林值,因為2確實在a這個陣列中,那如果我們要看2是不是在a陣列中的第3個位置呢 ? 可以用 :

a.includes ( 2 , 2  ) ;

會回傳false這個布林值,前一天有提到陣列的位置是從0開始算的,所以2應該是在1這個位置,我用2的位置去找,當然是找不到的。

push,特性是會在最後面增加一個值,我們在 a 加上一個5的數字,可以用 :

a.push ( 5 ) ;

這樣 a 這個陣列裡面就有5個數字,分別是1、2、3、4、5。

slice : 有兩個參數,都是選擇性的( optional ),第一個是自哪一個索引值(起始為 0)開始提取拷貝。可使用負數索引,表示由陣列的最末項開始提取 ; 第二個是至哪一個索引(起始為 0)之前停止提取,特性是可以從陣列中選擇你要的範圍提取出來,成為一個新陣列,如果要取 a 陣列中的3、4兩個數字的話,可以用 :

a.slice ( 2 , 3 ) ;

這樣會回傳3、4兩個數字。

sort,對一個陣列的所有元素進行排序,並回傳此陣列,預設的排序順序是根據字串的 Unicode 編碼位置(code points)而定 ; 如果今天要排列順序,可以用 :

a.sort ( ) ; 或是 a.sort (( a , b ) ⇒  a - b ) ; 

回傳結果是[ 1、2、3、4、5 ],那如果要相反呢 ? 可以用 :

a.sort (( a , b ) ⇒  b - a  ) ; 

回傳結果是[ 5、4、3、2、1 ]。

reduce,共有四個參數,後面三個是選擇性( optional ),第一個是用來累積回傳值的累加器或初始值,第二個是該陣列目前所迭代處理中的元素,第三個原陣列目前所迭代處理中的元素之索引。若有傳入初始值,則由索引 0 之元素開始,若無則自索引 1 之元素開始,第四個是呼叫該方法的陣列。

arr.reduce(callback[accumulator, currentValue, currentIndex, array], initialValue)

如果我們要用 a 陣列來將裡面的數字相加,可以用 :

a.reduce( (accumulator, currentValue) => accumulator + currentValue, 0 ) ; 

上面是說從0開始累積,再將 a 陣列裡面的數字,一個一個呼叫,跟你最初設定的值( initialValue )作相加

第一次呼叫 0 ( initialValue ) + 1 =1

第二次呼叫 1 + 2 =3

第三次呼叫 3 + 3 =6

第四次呼叫 6 + 4 =10

第五次呼叫 10 + 5 =15

回傳結果是 15

因為陣列方法很多,所以我挑了目前工作常使用的,如果還想知道其他的方法,可以上MDN網站查詢。


上一篇
第五天 - - JavaScript 陣列
下一篇
第七天 - - JavaScript 物件
系列文
跟著鱷魚妹妹一起坐牢之JavaScript 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言