[자바스크립트 완벽가이드] - 배열

Lee Jeong Min·2022년 6월 1일
0

자바스크립트

목록 보기
8/17
post-thumbnail

자바스크립트 완벽가이드 7장에 해당하는 부분이고, 읽으면서 자바스크립트에 대해 새롭게 알게된 부분만 정리한 내용입니다.

배열 생성

Array.from()

이 Array.from()이 중요한 이유는 배열 비슷한 객체를 진정한 배열로 바꾸는 방법이기 때문이다.

const truearray = Array.from(arraylike);

배열 순회

배열 순회시, forEach() 메서드는 for/of 루프와 달리 성긴 배열을 인식하고 존재하지 않는 요소에 대해서는 함수를 호출하지 않는다. filter()map() 또한 성긴배열에 대해서는 함수를 호출하지 않는다.

성긴 배열이란?
→ 밀집 배열이 아닌 중간중간 요소가 비어있는 배열

const a = [1, 2, 3];
delete a[1];
a.forEach(n => console.log(n)); // 1, 3

배열 메서드

하위 배열

copyWithin()

이는 배열의 슬라이스를 복사해 새 위치에 붙여넣는다.

첫 번째 인자는 첫 번째 요소가 복사될 위치의 인덱스이다.
두 번째 인사는 복사할 첫 번째 요소의 인덱스이다.
세 번째 인자는 복사할 슬라이스의 끝을 지정한다.

const a = [1, 2, 3, 4, 5];
// 전체를 복사해 인덱스 1에 덮어쓴다.
a.copyWithin(1); // [1, 1, 2, 3, 4]
// 마지막 두 개를 복사해 인덱스 2에 덮어쓴다.
a.copyWithin(2, 3, 5); // [1, 1, 3, 4, 4]
// 음수도 잘 동작한다
a.copyWithin(0, -2); // [4, 4, 3, 4, 4]

indexof()와 includes()의 차이

indexOf()는 === 연산자를 사용해 인자와 배열 요소를 비교하며, 이 알고리즘은 NaN을 자기 자신을 포함해 어떤 값과도 다르다고 판단한다.
includes()는 NaN이 자기 자신과는 일치한다고 판단하는 조금 다른 알고리즘을 사용한다.

const a = [1, true, NaN];
console.log(a.includes(true)); // true
console.log(a.includes(2)); // false
console.log(a.includes(NaN)); // true
console.log(a.indexOf(NaN)); // -1
profile
It is possible for ordinary people to choose to be extraordinary.

0개의 댓글