[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:

Powered by Blogger.