常見 JS 陣列方法

常見 JS 陣列方法

在寫 React 時很常使用陣列方法來進行渲染、判斷等等,因此在真正開始進入到 React 之前,先來練習一下常見的陣列方法吧!

.forEach()

forEach() 方法會將陣列內的每個元素,皆傳入並執行一次。 不會建立新的陣列以及回傳任何數值

const array1 = ["apple", "banana", "berry"];

array1.forEach((element) => console.log(element));

// 結果為 "apple"
// 結果為 "banana"
// 結果為 "berry"

.map()

map() 方法會建立一個新的陣列,其新陣列的內容是原陣列的每一個元素經由運算後回傳的結果。

const array1 = [1, 3, 5, 7];
const map1 = array1.map((x) => x * 5);

console.log(map1);
// 結果為 Array [5, 15, 25, 35]

.filter()

filter() 方法會建立一個經函式篩選後,符合條件之結果的新陣列。

const employeeList = [
  { name: "John", age: 30 },
  { name: "Betty", age: 28 },
  { name: "Candy", age: 25 },
];

const result = employeeList.filter((employee) => employee.age < 30);

console.log(result);
// 結果為 [{name: "Betty", age: 28}, {name: "Candy", age: 25}]

練習一:使用 .map 讓大家的 money 都乘以 5 倍

const newMoneyList = moneyList.map((item) => ({
  ...item,
  money: item.money * 5,
}));
console.log("newMoneyList: ", newMoneyList);

// 結果為 [{"name":"John","money":500},{"name":"Tony","money":1500},{"name":"Carter","money":250}]

練習二:使用 .filter 篩選出 newMoneyList 中 money 大於 1000 的資料

let filterMoneyList = newMoneyList.filter((item) => {
  return item.money > 1000;
});
console.log("filterMoneyList", filterMoneyList);
// 結果為 [{"name":"Tony","money":1500}]