yunicornlab

[JavaScript 배열 메서드] 자바스크립트 배열 메서드 - 접근/확인 본문

Development/JavaScript

[JavaScript 배열 메서드] 자바스크립트 배열 메서드 - 접근/확인

yunicornlab 2025. 3. 12. 01:57

배열 요소에 접근하는 방법 - at, 대괄호 표기법

📌 at( )

ES2022(ES13)에서 새롭게 추가된 메서드로, 대괄호 표기법과 달리 배열의 특정 요소를 가져올 때 음수 인덱스 지원이 가능하다.

배열.at(index)
const arr = [10, 20, 30, 40];

console.log(arr.at(0));   // 10 (첫 번째 요소)
console.log(arr.at(-1));  // 40 (마지막 요소)
console.log(arr.at(-2));  // 30 (뒤에서 두 번째 요소)
console.log(arr.at(10));  // undefined (범위를 초과)
console.log(arr.at(-10)); // undefined (음수로 범위를 초과)

 

음수 인덱스 지원하기 때문에 arr.at(-1)은 마지막 요소를 가져온다.

즉, arr[arr.length - 1]와 동일하다.

범위를 벗어난 경우, undefined를 반환한다.

매개변수 없이 배열.at()만 호출하면 첫 번째 요소를 반환한다.

 

⏳ 시간 복잡도O(1)이다. 특정 인덱스의 요소를 가져오는 것이므로 빠르다.

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/at

 

Array.prototype.at() - JavaScript | MDN

Array 인스턴스의 at() 메서드는 정숫값을 받아 해당 인덱스에 있는 항목을 반환하며, 양수와 음수를 사용할 수 있습니다. 음의 정수는 배열의 마지막 항목부터 거슬러 셉니다.

developer.mozilla.org

 

📌 대괄호 표기법

JavaScript에서 배열 요소를 가져오는 가장 기본적인 방식이다.

at() 메서드와는 달리 음수 인덱스를 직접 지원하지 않는다.

따라서 arr[-1]을 하거나 범위를 벗어나면 undefined를 반환한다.

const arr = [10, 20, 30, 40];

console.log(arr[0]);   // 10 (첫 번째 요소)
console.log(arr[1]);   // 20 (두 번째 요소)
console.log(arr[arr.length - 1]);  // 40 (마지막 요소)
console.log(arr[-1]);  // ❌ undefined (음수 인덱스 지원 안됨)
console.log(arr[10]);  // ❌ undefined (배열 크기 초과)

 

⏳ 시간 복잡도 O(1)이다. 특정 인덱스의 요소를 가져오는 것이므로 빠르다.


배열인지 확인하는 방법 - isArray

📌 isArray( )

배열인지 아닌지 확인하는 가장 확실한 방법이다.

Array.isArray(value)
console.log(Array.isArray([1, 2, 3]));  // true (배열)
console.log(Array.isArray("hello"));    // false (문자열)
console.log(Array.isArray({ a: 1 }));   // false (객체)
console.log(Array.isArray(null));       // false
console.log(Array.isArray(undefined));  // false

console.log(typeof [1, 2, 3]); // "object" (배열인지 아닌지 구별 불가능!)
console.log(Array.isArray([1, 2, 3])); // true

 

자바스크립트에서 typeof로 배열을 확인하면 "object"가 나오기 때문에 배열을 정확하게 확인할 수 없다.
그렇기때문에 Array.isArray()를 사용하는 것이 확실한 방법이다.

매개변수 없이 Array.isArray()만 호출하면 false를 반환한다.

 

 

⏳ 시간 복잡도 O(1)이다. 

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray

 

Array.isArray() - JavaScript | MDN

Array.isArray() 정적 메서드는 전달된 값이 Array인지 판단합니다.

developer.mozilla.org


배열인지 확인하는 방법 - length 속성

📌 length

배열의 길이를 구할 때 사용하는 가장 기본적인 속성이다.

const arr = [10, 20, 30, 40];

console.log(arr.length);  // 4 (배열의 길이)
console.log([].length);   // 0 (빈 배열)

 

배열 길이를 직접 변경하면 요소가 수정될 수 있기 때문에 주의해야 한다.

배열 길이를 줄이면 요소가 삭제되고,

배열 길이를 늘이면 기존 요소는 그대로지만, 새 요소는 empty 상태가 된다.

const arr = [1, 2, 3, 4, 5];

arr.length = 3; 
console.log(arr); // [1, 2, 3] (뒤의 요소 삭제됨)

arr.length = 5; 
console.log(arr); // [1, 2, 3, <2 empty items>]

 

⏳ 시간 복잡도 O(1)이다. 

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/length

 

Array.length - JavaScript | MDN

Array 인스턴스의 length 데이터 속성은 해당 배열의 요소 수를 나타냅니다. 해당 값은 부호 없는 32비트 정수이며 배열의 최대 인덱스 보다 항상 큽니다.

developer.mozilla.org