iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
自我挑戰組

TypeScript 從0開始系列 第 17

D17 - JS Array (3)

  • 分享至 

  • xImage
  •  
  • Array.prototype.fill()

    // fill(value)
    // fill(value, start)
    // fill(value, start, end)
    
    // 在array中填入數值,是初始化array的幫手
    
    const array = [1, "2", "34"]
    
    console.log(array.fill(5, 2, 5)) // 超出array範圍則不填
    console.log(array.fill(6, 0)) // 從index 0開始填到最後
    console.log(array.fill(7, 1, 2)) // 從index 1開始填到2之前 => 只填一個
    
    const empty_array = []
    console.log(empty_array.fill(8,0,8)) // 不會更動超出array範圍
    
  • Array.prototype.filter()

    // filter(callbackFn)
    // filter(callbackFn, thisArg)
    
    // 給定一個function,filter()會依照function內容回傳測試array中的每個element
    // 類似昨天學到的every()的語法,但filter()會把測試通過的element組成一個新array回傳
    let array2 = [0, 1, "2", 3, 4, "5", 6, 7, 8, 9]
    
    function isNumber(item) {
    	if (typeof(item) === "number") return true;
    	else return false;
    }
    
    const result = array2.filter(isNumber)
    console.log(result)
    
  • 找東西可以用的 methods

    • Array.prototype.find() / findIndex() / findLast() findLastIndex()

      // find() return 第一個符合條件的 element
      // findIndex() return 第一個符合條件的 element 在哪個 index
      
      let array2 = [0, 1, "2", 3, 4, "5", 6, 7, 8, 9]
      console.log(array2.find((x) => typeof(x) === "string")) // "2"
      console.log(array2.findIndex((x) => typeof(x) === "string")) // 2
      
      function greaterThan10(x) {
      	return x > 10
      }
      
      console.log(array2.find(greaterThan10)) // 找不到的話 回傳undefined 
      console.log(array2.findIndex(greaterThan10)) // 找不到的話 回傳index -1
      
      // findLast() return 最後一個符合條件的 element
      // findLastIndex() return 最後一個符合條件的 element 在哪個 index
      
      console.log(array2.findLast((x) => typeof(x) === "number")) // 9
      console.log(array2.findLastIndex((x) => typeof(x) === "number")) // 9
      
    • Array.prototype.indexOf() / lastIndexOf()

      // indexOf(searchElement)
      // indexOf(searchElement, fromIndex)
      //                        ^^^^^^^^^ 從哪裡開始往後看
      // 找某個值在array的第一次出現在哪個index
      const array = [0, 1, 4, 1, 2, 6, 5, 3]
      console.log(array.indexOf(1)) // 1
      console.log(array.indexOf(1, 3)) // 3
      console.log(array.indexOf(1, 4)) // -1
      
      // lastIndexOf(searchElement)
      // lastIndexOf(searchElement, fromIndex)
      //                            ^^^^^^^^^ 從哪裡開始往前看
      // 找某個值在array的最後一次出現在哪個index
      
      console.log(array.lastIndexOf(1)) // 3
      console.log(array.lastIndexOf(1, 0)) // -1
      console.log(array.lastIndexOf(1, 3)) // 3
      console.log(array.lastIndexOf(1, 4)) // 3
      
    • Array.prototype.includes()

      // includes(searchElement)
      // includes(searchElement, fromIndex)
      //                         ^^^^^^^^^ 從哪裡開始往後看
      // 找array中是否包含某個值
      const array = [0, 1, 4, 1, 2, 6, 5, 3]
      console.log(array.includes(4)) // true
      console.log(array.includes("4")) // false
      console.log(array.includes(4, 3)) // false
      
    • Array.prototype.some()

      // 給定一個function,找array中是否有任一個帶入function回傳true的值
      function greaterThan10(x) {
      	return x > 10
      }
      function greaterThan50(x) {
      	return x > 50
      }
      const array = [11, 5, 3, 29, 10, 13]
      
      console.log(array.some(greaterThan10)) // true
      console.log(array.some(greaterThan50)) // false
      

雖然這樣像翻字典一般學習方法很爛,但它的確讓我多練習一些JS的基本功,明天繼續加油!


上一篇
D16 - JS Array (2)
下一篇
D18 - 好想水水地過今天
系列文
TypeScript 從0開始21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言