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
- filter 符合的都回傳