let menu = {
width: 200,
height: 300,
title: "My menu"
};
function multiplyNumeric (obj) {
for (let sum in obj) {
if (typeof obj[sum] == 'number') {
obj[sum] * = 2
}
}
return menu
}
multiplyNumeric(menu);
/*
{
"width": 400,
"height": 600,
"title": "My menu"
}
*/
색을 칠한 부분을 *=가 아닌 *만 하면 처음 menu값만 나오는데, *=와 *의 로직을 잘 이해하지 못하겠습니다..ㅠㅠ
고수님들 도와주실 수 있나요??
*= 는 값을 곱한 후에 할당한다는 의미
*는 단순히 곱한다는 의미입니다.
색칠하신 부분을 예로 들면
obj[sum] *= 2는 풀어서 설명하면 obj[sum] = obj[sum] * 2,
원래의 obj[sum]의 값에 2를 곱한 뒤에 그 값을 다시 obj[sum]에 재할당하는 것으로 보시면 되고
obj[sum] * 2 는 똑같이 obj[sum]*2 로 곱셈연산은 했지만 할당한 값이 없어 원래의 menu가 결과 값으로 나옵니다.
답글
한경수
2021.07.20너무 감사합니다. 아 배운건데 왜 생각이 안날까요ㅜ 혼자공부하다보니 허점이 많은것 같습니다. 댭변해주셔서 감사합니당~