함수는 아무것도 반환하지 않기 때문에(파서가 자세한 양식을 사용하고 있다고 생각하기 때문에) 호출 결과는 undefined 값이 되고 undefined로 채워진 배열로 끝난다. 함수의 본문은 변수에 대한 독립 참조가 뒤 따르는 레이블(중첩 루프와 함께 사용할 수 있는 것)처럼 보이기 때문에 (이 예에서는) 구문 오류가 아니다. 아무 일도 하지 않지만 유효한 구문이다.
정답은 파서가 화살표 바로 뒤에 중괄호를 보지 않고 간결한 양식을 사용하고 있음을 알 수 있도록 객체 리터럴을 괄호로 묶는 것이다.
const a = ["Joe", "Mohammed", "María"]; const b = a.map(name => ({name: name})); // 동작한다. console.log(b);
또는 물론 장황한 양식을 사용하고 반환하자. 작성할 때 가장 명확하게 보이는 것이 무엇이든 사용하면 된다.
짧게 딴소리를 하자면, 매핑에 대한 호출의 객체 리터럴은 5장에서 배우게 될 단축 속성을 이용하면 훨씬 더 짧을 수 있다.