혼자 적어보는 노트

[Javascript] 배열(Array)을 객체(object)처럼 사용? 본문

Javascript

[Javascript] 배열(Array)을 객체(object)처럼 사용?

jinist 2022. 2. 21. 04:08

 

기본 코테 문제를 풀고 다른 사람들의 코드를 구경하던 중

배열에 관해 새로운 사실을 알게 되었다.

 

 

const arr = ["A", "B", "C"];

자주 볼 수 있는 배열인데, 여기에 key-value를 추가할 수 있다는 사실..!!

 

const arr = ["A", "B", "C"];

arr["First"] = "AAA";
arr["Second"] = "BBB";

console.log(arr);
// ['A', 'B', 'C', First: 'AAA', Second: 'BBB']

console.log(arr.length); // 3
console.log(arr["First"]); // AAA
console.log(arr["Second"]); // BBB

배열 안에 속성을 추가해 줄 수 있는 것이다.

 

 

const arr = ["A", "B", "C"];

console.log(typeof arr);
// object

그래서 typeof 로 값을 확인하면 object가 나오던 것이였나 싶다..

왜 이때 의문을 가지지 않았을까

 

 

추가로 알아보니

spread 연산자를 사용한 array를 object로 변환도 가능하다.

const arr = ["A", "B", "C"];

console.log({ ...arr });

// {0: 'A', 1: 'B', 2: 'C'}

 

 

for in을 이용하여 key를 확인해보면 key가 없는 부분은 숫자로 나타난다.

const arr = ["A", "B", "C"];

arr["First"] = "AAA";
arr["Second"] = "BBB";

for (let key in arr) {
console.log(key);
}

// 0
// 1
// 2
// First
// Second

 

for of를 사용하면 배열요소들만 나온다.

* forEach도 마찬가지

const arr = ["A", "B", "C"];

arr["First"] = "AAA";
arr["Second"] = "BBB";

for (let value of arr) {
    console.log(value);
}

// A
// B
// C

 

Comments