在
map
的世界裡就是把一個集合透過你想要做的事情之後變成另一個集合,完全不用去 loop collection。
假設我們有一個薪資列表 salaryTwdArray
, 為 [155, 22000, 40000, 59999, 90000]
, 我們現在想要把 salaryTwdArray
轉換成 salaryUsdArray
, 如果我們用傳統的做法,會需要這樣做:
let salaryTwdArray = [155, 22000, 40000, 59999, 90000];
let salaryUsdArray = [];
const TWD_TO_USD_RATE = 0.032208;
for (let i = 0; i < salaryTwdArray.length; i++) {
salaryUsdArray.push(salaryTwdArray[i] * TWD_TO_USD_RATE);
}
console.log("salaryUsdArray => " + salaryUsdArray);
如果是用高階的函式 map
,我們就只要告訴他我們要將 TWD 轉成 USD,不用去管 for
迴圈了。他的語法是這樣的:array.map(callback[, thisObject]);
const TWD_TO_USD_RATE = 0.032208;
let salaryTwdArray = [155, 22000, 40000, 59999, 90000];
let convertTwdToUsd = (x: number) => x * TWD_TO_USD_RATE;
let salaryUsdArray = salaryTwdArray.map(convertTwdToUsd); // 這裡是指 salaryTwdArray 裡的元素都要轉乘 TWD
console.log("salaryUsdArray (map version) => " + salaryUsdArray);
假設今天我們有一個 array 的內容是 [1, 2, 3, 4, 5]
, 我們想要取得這個 array 內容的全部平方值,我們可以怎麼做呢?
function concateWithComma(data:string[]):string {
return data.reduce((result, str)=> result + ", " + str);
}