JavaScript/기초

자바스크립트[기초] Array.isArray | Array.prototype.indexof | Array.prototype.includes

뿌비 2022. 4. 18. 17:34
728x90

Array.isArray

  • Array 생성자 함수의 정적 메소드이다 
  • 전달된 인수가 배열이면 true , 배열이 아니면 false를 반환한다.
// true
Array.isArray([]);
Array.isArray([1,2]);
Array.isArray(new Array());

// false
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(1);
Array.isArray('Array');
Array.isArray(true);
Array.isArray(false);
Array.isArray({ 0: 1, length: 1 });

Array.prototype.indexof

  • 원본 배열에서 인수로 전달된 요소를 검색하여 인덱스를 반환한다.
  • 배열에 특정 요소가 존재하는지 확인할 때 유용하다.
  • 원본 배열에 인수로 전달된 요소와 중복되는 요소가 여러 개 있다면 첫 번째로 검색된 요소의 인덱스를 반환한다.
  • 원본 배열에 인수로 전달된 요소가 존재하지 않으면 -1을 반환한다.
  • ES7에서 도입된 Array.prototype.includes 메소드를 이용하면 조금 더 가독성이 좋다 
const arr = [1,2,2,3];
// 배열 arr에서 요소 2를 검색하여 첫번째로 검색 된 요소의 인덱스를 반환한다.
arr.indexOf(2); // 1
// 배열 arr에 요소 4가 없으므로 -1을 반환한다.
arr.indexOf(4); // -1
// 두번째 인수는 검색을 시작할 인덱스이다. 두번째 인수를 생략하면 처음부터 검색 한다.
arr.indexOf(2,2) // 2

Array.prototype.includes 

  • 배열 내에 특정 요소가 포함 되어 있는지 확인하여 true, false를 반환한다.
  • 첫번째 인수로 검색할 대상을 지정한다 
  • 두번째 인수로 검색을 시작 할 인덱스를 전달 할 수 있다 ( 생략 할 경우 기본값 0이 설정 된다) 
  • 만약 두번째 인수에 음수를 전달 하면 length 프로퍼티 값과 음수 인덱스를 합산하여 (length + index) 검색 시작 인덱스를 설정 한다.
const arr = [1,2,3];
// 배열에 요소 2가 포함되어 있는지 확인한다.
arr.includes(2); // true
// 배열에 요소 100이 포함 되어 있는지 확인한다.
arr.includes(100); // false
728x90