본문 바로가기

JavaScript

[Javascript] 배열에 프로퍼티 추가

728x90
반응형

 

 

배열이란!

배열어떠한 타입의 값이라도 담을수 있는

번호가 매겨진 인덱스를 갖는 특별한 유형의 객체이다.

 

 

 

배열의 일반적인 값 할당

배열의 인덱스는 숫자인데 , 배열 자체도 하나의 객체여서  key:value 의 프로퍼티를 추가할 수 있다.

const arr = [1,2]
//arr에 2번째 index에 3을 할당
arr[2] = 3  
console.log(arr)   // [1,2,3]
console.log("length",arr.length)  // 3

 

위와 같이 값을 추가하면 length는 배열 내의 값의 수를 반환한다.

 

 

배열에 프로퍼티 할당

//배열에 프로퍼티를 할당
arr["key"] = 5; 
console.log(arr)  // [ 1, 2, 3, dd: 5 ] 에러가 안난다고..?
console.log("length",arr.length)  // 3

 

원래의 배열에 프로퍼티를 가진 값이 하나가 더 추가됐지만 length는 변함이 없다.

 

 

그래서 중간에 값을 하나더 추가하면서 빈 슬롯을 생기게 값을 할당해 보았다.

 

// 3번째 인덱스는 건너띄고 4번째 인덱스에 값할당
arr[4] = 4 
console.log(arr) // [ 1, 2, 3, <1 empty item>, 4, dd: 5 ]
console.log(arr.length)  // 5 

 

3번째 인덱스는를 띄워놓고 4번째 인덱스에 값을 주어서 3번째 인덱스는 빈값이고

key값이 있는 값은 맨 뒤로 밀려났다.

역시 마지막 값은 length에 영향을 미치지 않는다.

 

 

프로퍼티 할당시 키값을 숫자인 문자열로 넣었을때

const arr2 = []
arr2["100"] = 1;
console.log(arr2.length) //101

 

당황스럽게도 문자열키가아닌 숫자 키를 사용한것 같은 결과가 나온다

 

 

 

 

* 가능하지만 사용하지 않는것이 맞다. 책보던 중에 신기해서 정리해봄

 


✓ 참고 : you don't know js

728x90
반응형