COCO World

[Javascript/자바스크립트] 자료구조와 자료형 - 배열과 메소드 본문

카테고리 없음

[Javascript/자바스크립트] 자료구조와 자료형 - 배열과 메소드

코코월드주인장 2023. 1. 25. 16:16

1. 배열이 제공하는 다양한 메서드

 

[1] 요소 추가,제거 메서드

  • arr.push() : 맨 끝에 요소 추가
  • arr.pop() : 맨 끝 요소 제거
  • arr.shift() : 맨 앞 요소 제거
  • arr.unshift() : 맨 앞에 요소 추가

[2] splice

splice는 요소 추가,삭제,교체 모두 가능
arr.splice(index[, delteCount, elem1, ..., elemN])
// splice

let arr = ["I", "study", "JavaScript"]

arr.splice(1, 1);	// 인덱스 1부터 요소 한개 제거
alert( arr );	// ["I", "JavaScript"]

================================================
let arr = ["I", "study", "JavaScript", "right", "now"]

arr.splice(0, 3, "Let's", "dance");
alert( arr );	// ["Let's", "dance", "right", "now"]

[3] slice

"start"인덱스부터 "end"인덱스("end"를 제외한)까지의 요소를 복사한 새로운 배열을 반환
arr.slice([start], [end])

[4] concat

기존 배열의 요소를 사용해 새로운 배열을 만들거나 기존 배열에 요소를 추가하고자 할 때 사용
arr.concat(arg1, arg2, ...)

2. forEach로 반복작업 하기

arr.forEach(function(item, index, array)) {
   // 요소를 사용한 코드 작성
};

3. 배열 탐색하기

  • arr.indexOf(item, from) : 인덱스from부터 시작해 item을 찾음. 발견시 인덱스 반환, 발견하지 못할 경우 -1 반환
  • arr.lastIndexOf(item, from) : indexOf와 기능은 동일, 다만 문자열 끝에서부터 검색
  • arr.includes(item, from) : 인덱스from부터 시작해 item이 있는지 검색. 발견히 true 반환
  • find : 객체로 이루어진 배열이 있을 때, 특정 조건에 부합하는 객체 찾기 위한 메서드
  • findIndex : find와 동일하지만, 조건에 맞는 요소를 반환하는 대신 해당 요소의 인덱스를 반환, 해당 요소 없을 경우 -1반환
  • filter : find메소드는 함수의 반환 값을 true로 만드는 단 하나의 요소를 찾지만 filter는 조건을 충족하는 요소가 여러 개일 경우

4. 배열을 변형하는 메서드

  • map : 배열 요소 전체를 대상으로 함수를 호출하고, 함수 호출 결과를 배열로 반환
  • sort : 배열 요소를 정렬해주고, 배열 자체가 변경됨. 요소는 문자열로 취급되어 재정렬됨. -> 새로운 정렬 기준 위해선 함수 적용
  • reverse : 배열의 요소를 역순으로 정렬
  • split : 구분자(delim)을 기준으로 문자열을 쪼깨어 반환. 두 번째 인수로 배열의 길이를 제한해주는 숫자를 받음
  • join : split과 반대로 배열 요소를 모두 합친 후 하나의 문자열로 만들어줌
  • reduce : 반복 작업을 위한 메소드. 배열을 기반으로 값 하나를 도출할 때 사용
  • reduceRight : reduce와 동일한 기능이지만, 배열이 오른쪽부터 연산을 수행

5. Array.isArray로 배열 여부 알아내기

   : 자바스크립트에서 배열은 독립된 자료형이 아닌 객체형에 속하여 분류된다. 따라서 typeof 적용시 일반 객체와 배열은 구분 불가능

alert(typeof {});     // obejct
alert(typeof []);     // object

alert(Array.isArray({}));     // false
alert(Array.isArray([]));     // true