<JavaScript> Object 객체(2)
🐥자바스크립트 기초 문제 풀이
객체에서 이미 존재하는 key에 값을 다시 한 번 할당하면 변경되고,
이전에 없던 key로 접근하면 새로운 프로퍼티가 추가 된다.
⬇️다양한 방법으로 key에 접근하고 값을 재할당, 추가하는 모습⬇️
let difficult = {
name : 'n',
color : 'c'
}
console.log(difficult['name']);
//n이 출력됨
difficult['name'] = '값 바꾼다';
console.log(difficult['name']);
//재할당했으니 n이 아니라 '값 바꾼다'가 출력됨
difficult.color = '색깔';
console.log(difficult.color);
//재할당했으니 c가 아니라 '색깔'이 출력됨
console.log('생성전: ' + difficult.new);
//값이 할당된 적 없으므로 undefined 출력!
difficult.new = '새로 추가된 프로퍼티';
console.log('생성후: ' + difficult.new);
//값을 추가했으니 '새로 추가된 프로퍼티'가 출력됨
중첩된 객체 (Nested Object)
다음과 같이 중첩된 객체에서 'simple'을 출력하려면 어떻게 접근해야할까?
let nestedObj = {
type: {
year: '2019',
'comment-type': [{
name: 'simple'
}]
}
}
console.log(nestedObj.type.['comment-type'][0].name)
라고 적어야 접근이 가능하다!
풀어보면,
nestedObj라는 객체 속의
type이라는 객체 속의
'comment-type'라는 key값 속의
0번째 배열 속의
name이라는 key값!
에 접근 한 것이기때문에
'simple'이라는 value를 출력할 수 있다.
Assignment
getAnswer 함수를 구현해 주세요.
getAnswer 함수는 아래의 객체에서 '샐러드' 라는 값을 출력합니다.
let myProfile = {
name: '김개발',
address: {
email: '[email protected]',
home: '위워크'
},
'my favorite': {
food: [{
name: '샐러드',
price: 3500
}, {
name: '삼겹살',
price: 15000
}],
hobby: ['축구']
}
}
나의 답안
function getAnswer() {
let result = myProfile['my favorite'].food[0].name
return result;
}
myProfile이라는 객체 속의
'my favorite'이라는 key값 속의
food라는 객체 속의
0번째 배열 속의
name이라는 key값
에 접근한 결과를 return했다!
보다보니 같은 대괄호 안에서도 그냥 대괄호 안에 덜렁 쓰여진 key와 따옴표로 써진 key의 차이에 대해서 혼동이왔어서.. 다시 정리해봐야겠담
♥︎ 대괄호 안에 덜렁 있는 key는 이전에 설명한 바와 같이 변수이름을 적을 때만! 그렇게 쓰는거다.
ex. 객체이름[변수이름]
♥︎ 대괄호 안에 따옴표 속에 쓰여진 key는 띄어쓰기를 포함한 string형의 key인 것이다.
ex. 객체이름['문자열이름']
♥︎ 온점으로 접근하는 방식은 정말 딱 해당 key의 이름과 정확히 일치하는 이름을 적을 때 사용하는것이다! 띄어쓰기는 포함될 수 없다.
ex. 객체이름.정확한key이름!
아주 기초적인 내용이지만
자꾸만 헷갈리는걸~~
못살아
Author And Source
이 문제에 관하여(<JavaScript> Object 객체(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lownk/JavaScript-Object-객체2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)