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