Array - 배열 다루기
2022-01
JS의 배열은 객체이다.
배열은 객체이므로 주의가 많이 필요하다.
배열임을 확인하고 싶을때는 Array.isArray(arr); 를 활용하자.
Array.length
length는 배열의 길이보다는, 배열의 마지막 index라고 생각하자.
arr.length = 0; 으로 하면 배열이 초기화된다.
주의해서 사용하자.
배열 요소에 접근하기
[0], [1] 으로 요소에 접근하는 코드를 지양하자.
input[0], input[1] 의 경우
개선코드 예 1)
const [firstInput, secondInput] = input; 개선코드 예2) 함수에서 받을 때부터 분해하기
function operateTime([firstInput, secondInput].. ) {
...
}
operateTime([1, 2],...) 개선코드 예3) 유틸함수 만들어 사용하기. lodash의 _.head(array) // 첫번째 요소 얻기
유사 배열 객체
예 : 함수 내에서 사용하는 arguments, querySelectAll 엘리먼트 리스트
진짜 배열이 아니기때문에 내부 프로토타입에 배열 내장함수가 없다.
배열로 바꿔준 후 사용한다.
불변성 (immutable)
원본배열의 불변성을 지키기 위해서는
방법 1. 배열을 복사한다.
방법 2. 새로운 배열을 반환하는 메서드들을 활용한다.
push, unshift등의 함수는 원본 배열을 바꾼다.
for문 배열 고차함수로 리팩토링
임시변수 사용코드
map 배열 고차함수를 이용해서 선언, 명시적으로 리팩토링
배열 메서드 체이닝 활용하기
체이닝 활용 전 코드
메서드 체이닝 활용 : 명시적, 앞으로 계속 코드가 추가되어도 명확하게 작성할 수 있다.
map vs forEach
forEach는 매 요소마다 함수를 실행한다.
map은 매 요소마다 함수를 실행하고 결과값을 저장해 새로운 배열을 반환한다.
즉,
반환값 없이 배열 요소를 순환하면서 함수 실행만 할 경우는 forEach 사용
새로운 배열을 만들때는 map을 사용한다.
Last updated
Was this helpful?