Skip to main content

Array

  • 寫法
    // type + []
    let arr1: number[] = [1, 2, 3];
    arr1.push(4, 5);
    console.log(arr1);

    // 泛型寫法
    let arr2: Array<number> = [1, 2, 3];
    console.log(arr2);

    // 用 any 表示允許任意型別
    let arr3: any[] = [1, "test", true, { name: "Kappa" }];
    console.log(arr3);
  • Function 用法
    • filter 符合的都回傳
      const numbers: number[] = [1, 2, 3, 4, 5];

      const result: number[] = numbers.filter((number) => number > 3);

      console.log(result); // 4 5
    • find 回傳符合的第一個,都不符合會回傳 undefined
      const numbers: number[] = [1, 2, 3, 4, 5];

      const result: number | undefined = numbers.find((number) => number > 3);

      console.log(result); // 4
    • map 傳一個 function 進去,array 的每個元素都會執行該 function,並將回傳的值,回傳到新的陣列
      const numbers: number[] = [1, 2, 3, 4, 5];

      const result = numbers.map((number) => number * 2);

      console.log(result); // [ 2, 4, 6, 8, 10 ]
      console.log(numbers); // [ 1, 2, 3, 4, 5 ] 原本的 array 不會改變
      要達到同樣效果 foreach 要這樣寫,缺點是會修改到原陣列
      const numbers: number[] = [1, 2, 3, 4, 5];

      numbers.forEach((value, index) => {
      numbers[index] = value * 2;
      });

      console.log(numbers);
    • reduce 第一個參數傳一個 function,這邊為累加 第二個參數為初始值 (可不寫,初始值會變成 array 的第一個值)
      const numbers: number[] = [1, 2, 3, 4, 5];

      // 10 + 1 + 2 + 3 + 4 + 5
      const result: number = numbers.reduce(
      (previousValue, currentValue) => previousValue + currentValue,
      10
      );

      console.log(result); // 25