.map() 裡面須執行一個 call back function,可以用一般function,也可以用匿名函式、箭頭函式。

這樣map就會對每一個元素去做函數裡面對應要做的敘述,每個元素都會進行該敘述並return回來組成一個新的array。不用寫很麻煩的loop,相當方便

範例1:

let language = ["Java", "C++", "Python", "JS"];

//一般function
let result1 = language.map(function langUpper(i) {
  return i.toUpperCase();
});

//匿名函式
let result2 = language.map(function(i) {
  return i.toUpperCase();
});

//箭頭函式
let result3 = language.map(i => {
  return i.toUpperCase();
});

console.log(result1); // [ 'JAVA', 'C++', 'PYTHON', 'JS' ]
console.log(result2); // [ 'JAVA', 'C++', 'PYTHON', 'JS' ]
console.log(result3); // [ 'JAVA', 'C++', 'PYTHON', 'JS' ]

範例2:

const record = [
  {name: "math", score: 89},
  {name: "chinese", score: 72},
  {name: "english", score: 91},
  {name: "science", score: 88}
];

let subject = record.map(e => {
  return e.name;
});

let point = record.map(e => {
  return e.score;
});

console.log(subject); // [ 'math', 'chinese', 'english', 'science' ]
console.log(point); // [ 89, 72, 91, 88 ]

補充一下,array.map((element, index) ⇒ ()) 的callback function 其實是可以傳三個參數的,前兩個比較常用,只傳一個的話一個就會是常用的陣列元素,傳第二個的話就會是陣列index,可以看怎麼樣去交互靈活使用。