개발자

배열 내부에서 삼항연산자 사용할 경우 결과가 다르게 나오는 이유가 알고싶어요.

2023년 03월 11일조회 238

const ewq = [1?({age:10},{age:105},{age:120},{age:15}):{age:1}] 여기서 콘솔에 ewq를 찍으면 {age:15}만 나오는데 저는 ({age:10},{age:105},{age:120},{age:15})가 나올거라고 생각했습니다. 맨 마지막인 {age:15}만 나오는 이유는 무엇일까요? ㅠㅠ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

오원종(Owen)님의 프로필 사진

안녕하세요. 작성자님이 작성하신 코드는 아래에서 _ewq와 같은 값을 가질 것입니다. 여기서 소괄호(())는 대괄호([])와 역할이 다르며, 일반적으로 배열에서는 잘 사용되지 않습니다. 해당 문법에서는 배열 안에서 age 값 하나를 가진 오브젝트가 값을 10, 105, 120, 15 이렇게 덮어씌우는 것으로 보입니다. 그래서 마지막에 작성한 15가 값으로 콘솔에 찍히는 것이지요. 만약 의도하시는 것처럼 4개의 값이 모두 배열에 들어가게 하고 싶으시다면 아래에 __ewq 처럼 ... 연산자를 사용해서 배열 안에서 배열을 인식하도록 수정해 주면 될 것 같습니다.

1
2
3
const _ewq = [({age:10},{age:105},{age:120},{age:15})];

const __ewq = [...[{age:10},{age:105},{age:120},{age:15}]];
profile picture

익명

작성자

2023년 03월 14일

우와 감사합니다!!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!