반응형

[javascript : 배열, 객체와 반복문처리]

객체일때 key & value 형태와  배열일때 반복문(for in )에서의 인덱스들이 처리 되는 형태가 다른 프로그램과는 좀 다른 차이가 있습니다

그리고 javascript 에서 특이한 점은 객체를 만들 수있는데 c++ 로 치자면 map 과 유사한 형태로 객체가 만들어진다는 것이고

인스턴스를 하나 만든 이후에 임의의 키를 인스턴시.키명 의 형태로 바로 지정하여 value 를 일괄적인 타입 제한 없이 자유형태로 대입할 

수 있다는 것이 다른 프로그램과는 좀 더 확연하게 차이나는 부분입니다



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
var arr = ['sdfa2323''asdfsadf''c'function () { console.log("tttt"); }];
 
var tt = [{ "s"3 }, { "k"23 }, { "a"30 }];
 
var ob = { "s"3"k"23"a"30 };
 
ob.add = function () {                  // 나중에 객체에 키가 되는 변수와 값을 추가 할 수 있다
 
    console.log('fffffnnnn');
 
    console.log(this.s);                //이때 멤버 변수를 가르킬려면 this. 가 필요함, 없으면 에러
};
 
 
 
console.log('\n==== ob.add() ===\n');
 
ob.add();
 
ob['z'= 10;
 
var ddddd = ob["s"];                    // 이런 형태로 값을 갖어 올 수 있음
 
console.log('\n==== for (var name in ob) ===\n');
 
for (var name in ob) {                          //객체의 경우 for in 으로 호출하게 되면 name 에는 key 값이 들어오지만
 
    console.log(name + "   " + ob[name]);
 
}
 
 
console.log('\n=== for (var name in tt) ====\n');
//!! 배열을 for in 구문으로 불러오면 name 에는 배열읠 인덱스가 문자열 형태로 들어오게 된다
 
for (var name in tt) {                          
 
    console.log(name + "   " + arr[name]);
}
 
 
 
console.log('\n===  forEach(function (item, index)  ====\n');
 
tt.forEach(function (item, index) {             //배열을 foreach 로 호출 할 경우 item 값과 index 값을 받아오는 형태로 작성한다
 
    console.log(item,"     " ,index);
 
});
 
 
console.log('\n=======\n');
 
for (var name in arr) {
    console.log(name + "   " + arr[name]);
}
 
console.log('\n===  console.dir(arr) ====\n');
console.dir(arr);





반응형

+ Recent posts