자바스크립트 배열 json 형식 데이터가 있습니다. 속성중에 score가 있는데, 이 부분을 일괄적으로 실수로 변경하고자 합니다.
const data = [
{"name": "john", "score": 6},
{"name": "david", "score": 7},
{"name": "philip", "score": 8.9}
];
const new_array = data.map(item => {
return { ...item, score: parseFloat((item.score).toFixed(1)) };
});
// 결과 출력
console.log(new_array);
data 배열을 map 함수를 사용하여 새로운 new_array를 만들어 줍니다.
`map()` 메서드에서 콜백 함수의 중괄호(`{}`)는 함수의 본문을 감싸고 있는 블록을 나타냅니다.
중괄호를 사용하여 함수의 본문을 정의하고, 반환할 값을 명시할 수 있습니다. 따라서, `const new_array = data.map(item => { ... });`와 같이 중괄호를 사용하여 콜백 함수의 본문을 정의하는 것은 올바른 문법입니다. 콜백 함수의 본문은 중괄호 안에 작성되며, 해당 부분에서 원하는 작업을 수행하고 결과를 반환해야 합니다.
만약에 `const new_array = data.map(item => return { ... });`와 같이 중괄호 없이 `return` 키워드를 사용하는 구문은 JavaScript에서 유효하지 않습니다. 이렇게 작성하면 문법 에러가 발생합니다.
화살표 함수(arrow function)에서 중괄호를 사용하여 함수의 본문을 정의할 때에는 `return` 키워드를 사용하여 값을 반환해야 합니다. 따라서 중괄호 안에서 반환할 값에 대해 명시적으로 `return` 키워드를 사용해야 합니다.
올바른 코드는 다음과 같이 중괄호 안에서 `return` 키워드를 사용하여 값을 반환하는 것입니다
이렇게 수정하면 `map()` 메서드를 사용하여 새로운 배열을 생성하고, 각 요소의 `score` 속성을 변경한 결과가 `new_array` 변수에 할당됩니다.