상세 컨텐츠

본문 제목

연관 배열, associative array, 순차 배열, sequential array, 인덱스 배열 indexed array

JavaScript

by 폴리프레임 2024. 8. 15. 09:57

본문

반응형

순차 배열 (Indexed Array): 인덱스는 비음수 정수이며, 배열의 요소는 해당 인덱스를 통해 접근됩니다. Array를 사용하여 생성됩니다. 순차 배열(Sequential Array) == 인덱스 배열(Indexed Array)

// 순차 배열 예시
let colors = ["빨강", "파랑", "초록"];

// 인덱스를 사용하여 배열 요소에 접근
console.log(colors[0]); // 출력: 빨강
console.log(colors[1]); // 출력: 파랑
console.log(colors[2]); // 출력: 초록

// 배열의 길이를 자동으로 계산
console.log(colors.length); // 출력: 3

연관 배열 (Associative Array): JavaScript에서는 기본적으로 Object로 구현되며, 키(key)와 값(value) 쌍으로 구성됩니다. 객체의 문자열을 키로 사용해 값에 접근합니다.

// 객체를 사용한 연관 배열 예시
let person = {
  name: "홍길동",
  age: 30,
  city: "서울"
};

// 키를 사용하여 값에 접근
console.log(person["name"]); // 홍길동
console.log(person["age"]);  // 30
console.log(person["city"]); // 서울

// dot notation을 사용할 수도 있음
console.log(person.name); // 홍길동
console.log(person.age);  // 30
console.log(person.city); // 서울

 

혼합된 경우를 보겠습니다. 물론 이렇게 프로그래밍해서는 안됩니다만, 개념파악을 위해 작성해 봅니다.

let fruits = ["사과", "바나나", "오렌지"];
console.log(fruits[0]); // 사과

fruits["favorite"] = "망고";
console.log(fruits) // (3)['사과','바나나','오렌지', favorite:'망고'] 
// 위 에서 보듯, 추가한 '망고'는 furits.length 에도 포함이 안되었고, 객체로 저장 되었습니다.
//type이 엄격한 언어에서는 typeError가 나겠지만, 자바스크립트는 에러 아님

fruits[4] = '포도'; // 망고가 인덱스 3번째 인듯하여, 망고 뒤에 추가 하려 했지만, 망고는 별도 처리 합니다.
console.log(fruits) // (5) ['사과', '바나나', '오렌지', 비어 있음, '포도', favorite: '망고']
// 위 결과 처럼, index 4번째에 '포도', 그리고 3번째는 undefined 이고, 망고는 별도로 객체 처리되며
// fruits.length에 해당 안됩니다.

// 여기 favorite: '망고'; 는 Associative array에 해당합니다.

 

관련글 더보기