[JS]배열(Array)

김정현·2022년 5월 27일
0

개념 정리

목록 보기
3/9
post-thumbnail

배열

배열

자료 구조 중 하나로, 배열이란 연관된 데이터를 하나의 변수에 그룹핑해서 관리하기 위한 방법이다
배열의 요소는 index와 value로 구성되어 있다

js의 배열은 다른 언어와 다르게 내부 데이터의 타입이 서로 다를 수 있으며
배열의 크기가 동적으로 변경될 수 있다

얕은 복사(shallow copy)

배열은 복제가 아닌 참조가 일어난다
유의할 점은 참조 후 원본 배열에서 일어나는 요소의 추가, 제거는 참조된 배열에 영향을 미치지 않는다

배열 선언

1.배열의 공간만을 할당
let array1 = new Array(3); // new를 붙히는 것과 아닌 것에 차이가 있긴 하지만 대부분은 붙히지 않아도 된다
console.log(array1);

2.인자를 직접 입력
let array2 = new Array(1, 2, 3); 
console.log(array2);

3.인자의 개수가 정해지지 않았을 때, 인자를 제한없이 받을 수 있을 때
let array3 = Array.of(1, 2, 3, 4, 5); 
console.log(array3);

4.배열 리터럴 사용
let array4 = ["1", "2", "3"]; 
console.log(array4);

5.기존의 array를 이용하여 배열 생성
이터러블뿐만 아니라 유사 배열 객체(6번참고)를 인수로 전달받아 배열로 반환할 수도 있다
let array5 = Array.from(array4); 
console.log(array5);

6.유사 배열 객체, 객체를 통해 배열을 생성, 
key는 index번호이며 length를 입력해줘야 한다
let array6 = Array.from({ 
  0: "value1",
  1: "value2",
  length: 2,
});
console.log(array6);

배열 순회

for(let item of arr){
	console.log(item)
}

배열의 모든 요소를 순회할 때 for..of문을 사용한다

배열 함수

js 메서드 정리글:
https://velog.io/@yopi27/JS메서드배열-String-Math

예전에 정리한 것, 위 링크에서 확인하기
### 일반 함수

* .push("item")로 배열 마지막에 요소를 추가할 수 있다. 원본 배열 수정
* .pop()으로 배열 마지막에 요소를 제거할 수 있다. 원본 배열 수정
* .unshift("item")로 배열 맨 앞에 요소를 추가할 수 있다. 원본 배열 수정
* .shift()로 배열 맨 앞에 요소를 제거할 수 있다. 원본 배열 수정
* .splice(index번호, 추가/제거할 item개수, 추가할 item1, item2..) - n번째 요소로 부터 삭제할 개수만큼 요소를 제거 후 요소를 추가. 원본 배열 수정


* .slice(시작index, 끝나는 index + 1) - 시작index와 끝 index를 지정하여 새로운 배열을 반환. 원본 배열 유지
음수를 넣을 경우 마지막 요소가 -1에 해당되며, 첫 요소가 -n에 해당한다


* .join("연결자") - 배열의 모든 요소를 더하여 문자열로 반환. 지정한 연결자로 요소를 구분할 수 있다
* .split("구분자") - 문자들을 입력된 구분자를 기준으로 요소를 나누어 새로운 배열을 반환한다. 원본 배열 유지


* .isArray(arr) - 배열인지 아닌지를 불리언으로 반환한다
* .indexOf("item") - item이 배열에 있다면 index를 반환, 없다면 -1을 반환
* .includes("item") - 배열 안에 특정한 아이탬이 있는를 true, false로 반환
* .reverse() - 배열 내 요소들의 index를 뒤집는다. 원본 배열 수정
* arr1.concat(arr2, arr3...) - 여러개의 배열을 하나로 합친다. 새로운 배열 반환
* .flat(펼칠 중첩 단계 입력)
* .fill(배열을 채울 item, 시작index, 끝index)

### 고차 함수
* .forEach() - 주어진 함수를 배열 요소 각각에 대해 실행한다
* .find() - 콜백 함수로 원하는 조건의 첫 번째 요소를 찾아 값을 반환한다
* .filter() - 콜백 함수로 원하는 조건의 요소들을 찾아 반환
* .map() - 콜백함수로 배열안에 각각의 요소들을 새로운 베열로 변환한다
* .flatmap() - 
* .some() - 콜백함수로 해당 조건의 요소가 배열 내에 하나 이상 존재하는지 확인한다
* .every() - 콜백함수로 배열의 모든 요소들이 해당 조건을 충족하는지 확인한다
* .reduce() - prev, curr를 출력한다. prev는 콜백의 리턴값, curr는 현재 순서의 요소이다. 즉 콜백과 리턴값과 요소를 순차적응로 값을 반환한다. 초기값을 줄 수 있다
* .reduceRight() - reduce의 역순으로 반환
* .sort() - 이전값과 현재값의 콜백값이 -가 되면 정렬, a - b는 오름차순, b - a는 내침차순 정렬이 된다

참고 사이트:
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array

profile
개발 공부 블로그

0개의 댓글