Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 3x 3x 3x 6x 6x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 1x 1x 1x 1x 1x | /**
* 任務:實作一個函式 `createDataStore`,該函式會建立一個資料儲存庫,該儲存庫有兩個方法:add 和 getAll。
* add 方法用於添加新的項目到儲存庫,getAll 方法用於獲取儲存庫中的所有資料。
*
* 範例:
* const store = createDataStore<number>();
* store.add(1);
* store.add(2);
* store.getAll() 應該回傳 [1, 2]
*
* @returns - 回傳一個物件,該物件有 add 和 getAll 兩個方法
*/
export function createDataStore<T>() {
// 宣告一個名為 data 的變數,其為 T 型別的陣列,並初始化為空陣列
// T 是一個泛型參數,代表任何型別
// let data
const data: T[] = [];
// 定義一個名為 add 的函式,該函式接收一個 T 型別的參數 item,並將 item 添加到 data 陣列中
// 這裡的 T 也是泛型,所以 item 可以是任何型別
function add(item: T){
data.push(item);
}
// 定義一個名為 getAll 的函式,該函式回傳 data 陣列的所有元素
// 回傳的陣列中的元素型別也是 T,所以可以是任何型別
function getAll(){
return data;
}
return { add, getAll };
}
const store = createDataStore<number>();
store.add(1);
store.add(2);
console.log(store.getAll()); |