map関数

React

mapとforEachの違い

map関数内でreturnすれば、配列を受け取り、戻り値が配列形式でリターンされる

一方でforEach関数内でreturnしても、その値はundefinedとなってしまうのでダメ

const array = [1,2,3]

const result = array.map( (number) => {
  number++;
  return num;
}); 
console.log(result); --> [2,3,4]

const result2 = array.forEach( (number) => {
  number++;
  return num;
});
console.log(result2) --> undefinedと表示される

return内での使い方

return内では<li>タグはHTMLなので、=>{}ではなく、=>()となる

const App = () => {
  const array = [1,2,3];
  return (
    <ul>
      {array.map((element, i) => (  <----ココ
        <li key={i}>{element}</li>
      ))}
    <ul/>
  );
};

配列内にオブジェクトが入ってるパターン

const students =[
  {
    id: '0001',
    name: 'AAA',
    age: 20,
  },
  {
    id: '0002',
    name: 'BBB',
    age: 30,
  }
];
// 書き方その1
const newArray = students.map( (student) => {
  return { [student.id]: student.name }
});
console.log(newArray);

// 書き方その2(どちらも同じ結果を返す)
const newArray = students.map( ({id, name}) => (
  { [id]: name }
));
console.log(newArray);
BACK