[Web] Javascript의 객체
객체
- key, value의 자료구조
- JavaScript로 데이터를 표현하기 위해서는 Array, Object를 사용한다.
- Object 형태는 {}로 그 자료를 표현하며, 서버와 클라이언트 간에 데이터를 교환할 때 Object 포맷과 비슷한 방법으로 데이터를 보낸다.
| 
1 
2 
3 
4 
5 | 
var obj={name : "crong", age:20} 
console.log(obj.name) //가능 
console.log(obj[name]) //불가능 
console.log(obj["name"]) //가능 | cs | 
JSON과 형태가 유사함을 알 수 있다. 
객체를 탐색하는 방법으로 많이 쓰이는 것으로 for-in 이 있다. 
| 
for (key in obj) { 
    console.log(key); 
} //key 차례대로 출력 
for(key in obj) { 
    console.log(obj[key]); 
} // value 차례대로 출력 | cs | 
또 다른 방법으로 Object.keys()와 foreach 가 있다. 
| 
console.log(Object.keys(obj)); // obj 객체에 대한 key 들이 리스트 형태로 출력 
Object.keys(obj).forEach(function(v) { 
    console.log(obj[v]); 
}); | cs | 
for-in과 비슷한 문법으로 배열의 탐색을 위한 for-of 가 있다.
| 
for (const value of array) { 
  console.log(value); 
  // 1 
  // 2 
  // 3 
} | cs | 
실습 1 : 숫자 타입으로만 구성된 요소를 뽑아 배열을 출력
| 
for (value in data){ 
    for( v in data[value]){ 
        if(!isNaN(data[value][v])) 
            arr.push(v); 
    } 
} 
console.log(arr); | cs | 
재귀 함수 이용
| 
javafunction findNo(data,result){ 
    for(keys in data){ 
        if(typeof data[keys]=='number') 
            result.push(keys); 
        else if(typeof data[keys]=='object'){ 
            findNo(data[keys],result); 
        } 
    } 
} 
var arr=[] 
findNo(data,arr); 
console.log(arr); | cs | 
실습 2 : type이 sk인 name만으로 구성된 배열을 출력
| 
var arr=[]; 
function getSK(data,result){ 
    if(data.type=='sk'){ 
        result.push(data.name); 
    } 
    for(key in data){ 
        if(typeof data[key]=='object'){ 
            getSK(data[key],result); 
        } 
    } 
    return result; 
} 
console.log(getSK(array,arr)); | cs | 

No comments: