티스토리 뷰
객체 선언
let obj = {name:"seogineer", age:20};
console.log(obj.name); //seogineer
console.log(obj["name"]); //seogineer
객체 추가/삭제
obj["name"] = "seo";
console.log(obj); // { name: 'seo', age: 20 }
obj.job = "developer"
console.log(obj); // { name: 'seo', age: 20, job: 'developer' }
객체 탐색
//value값이 숫자인 key만 출력
const data = {
"debug": "on",
"window": {
"title": "Sample Konfabulator Widget",
"name": "main_window",
"width": 500,
"height": 500
},
"image": {
"src": "Images/Sun.png",
"name": "sun1",
"hOffset": 250,
"vOffset": 250,
"alignment": "center"
},
"text": {
"data": "Click Here",
"size": 36,
"style": "bold",
"name": "text1",
"hOffset": 250,
"vOffset": 100,
"alignment": "center",
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
}
let arr = [];
function findNum(data){
for(key in data){
if(typeof data[key] == 'object') {
findNum(data[key]);
} else if(typeof data[key] == 'number'){
arr.push(key);
}
}
}
// function findNum(data){
// Object.keys(data).forEach(function(value){
// if(typeof data[value] == 'object'){
// findNum(data[value]);
// } else if(typeof data[value] == 'number'){
// arr.push(value);
// }
// });
// }
findNum(data);
console.log(arr);
결과
[ 'width', 'height', 'hOffset', 'vOffset', 'size', 'hOffset', 'vOffset' ]
객체 탐색2
// type이 sk인 배열의 name의 value만 출력
const data = [{
"id": 1,
"name": "Yong",
"phone": "010-0000-0000",
"type": "sk",
"childnode": [{
"id": 11,
"name": "echo",
"phone": "010-0000-1111",
"type": "kt",
"childnode": [{
"id": 115,
"name": "hary",
"phone": "211-1111-0000",
"type": "sk",
"childnode": [{
"id": 1159,
"name": "pobi",
"phone": "010-444-000",
"type": "kt",
"childnode": [{
"id": 11592,
"name": "cherry",
"phone": "111-222-0000",
"type": "lg",
"childnode": []
},
{
"id": 11595,
"name": "solvin",
"phone": "010-000-3333",
"type": "sk",
"childnode": []
}
]
}]
},
{
"id": 116,
"name": "kim",
"phone": "444-111-0200",
"type": "kt",
"childnode": [{
"id": 1168,
"name": "hani",
"phone": "010-222-0000",
"type": "sk",
"childnode": [{
"id": 11689,
"name": "ho",
"phone": "010-000-0000",
"type": "kt",
"childnode": [{
"id": 116890,
"name": "wonsuk",
"phone": "010-000-0000",
"type": "kt",
"childnode": []
},
{
"id": 1168901,
"name": "chulsu",
"phone": "010-0000-0000",
"type": "sk",
"childnode": []
}
]
}]
}]
},
{
"id": 117,
"name": "hong",
"phone": "010-0000-0000",
"type": "lg",
"childnode": []
}
]
}]
}]
let arr2 = [];
// function findSk(data){
// for(key in data){
// if(data[key].type == 'sk'){
// arr2.push(data[key].name);
// }
// if(data[key].childnode.length > 0){
// findSk(data[key].childnode);
// }
// }
// }
function findSk(data){
data.forEach(function(value){
if(value.type == 'sk'){
arr2.push(value.name);
}
if(value.childnode.length > 0){
findSk(value.childnode);
}
});
}
findSk(data2);
console.log(arr2);
결과
[ 'Yong', 'hary', 'solvin', 'hani', 'chulsu' ]
'Language > Javascript' 카테고리의 다른 글
버블링(Bubbling)과 Event delegation (0) | 2020.12.30 |
---|---|
DOMContentLoaded 이벤트 (0) | 2020.12.30 |
배열과 배열 탐색, 함수 (0) | 2020.12.28 |
appendChild(), insertBefore() (0) | 2020.12.27 |
parentElement, parentNode (0) | 2020.12.26 |
댓글