CleanCode JS - 배열

pds·2022년 12월 1일
0

Cleancode

목록 보기
4/5

클린코드 자바스크립트 강의를 듣고 얻은 정보를 참고하여 기록한 내용입니다.



배열 검증은 Array.isArray()를 사용하자


const printArray(list) {
  	if(list.length) {
      	list.forEach(v => console.log(v));
    }
}

const printArray("나는문자열이지렁");

문자열 등의 객체들도 length 속성이 있기 때문에 모호할 수 있다.

Array.isArray(list) 같은 방법으로 배열 타입 여부를 명확하게 검사할 것!


고차함수를 사용하자

for반복문 보다는 고차함수로 배열을 핸들링 할 경우 불필요한 임시변수 사용을 줄일 수 있고

코드 길이가 짧아지고 추상화 수준이 높아져 가독성과 관리가 좋아진다.

주어진 배열에서 50보다 큰 수를 제거하고 0보다 작은 수를 999로 변경한 뒤 오름 차순으로 정렬해라


function a(list) {
  const tempList = [];
  for(let i = 0; i < list.length; i ++) {
    if(list[i] < 0) {
		tempList.push(999);
    }
    if(list[i] <= 50) {
    	tempList.push(list[i]);
    }
  }
  return tempList.sort();
}
function a(list) {
	return list.filter(v1 => v1 <= 50)
               .map(v2 => v2 < 0 ? 999 : v2)
               .sort();
}

어떤게 보기 좋고 간결하며 추상화가 잘 되어있는지 생각해보자

고차함수 사용 시 메소드 체이닝으로 간결하고 가독성 있는 코드를 구성할 수 있다.

불필요하고 생명주기를 파악하기 어려운 임시변수 사용을 줄여주기도 한다.


break, continue를 사용해야할 때는

고차함수 최적화를 위해 try-catch 를 사용해 이르게 동작을 중단시킬 수도 있지만

적절한 방법은 아니다.

예외는 예외 상황에만 사용하라 라는 말이 어떤 언어에는 있다.

언어마다 다르겠지만 예외는 정말 예외를 위해 설계되어져 있기 때문에 일반적인 분기보다 비용이 크다.

continue, break 등 반복 분기문을 사용해야 한다면 for 문 사용을 고려하는 편이 낫다.


every() , some() ,find() , findIndex() 메소드 활용

배열의 메소드들로 사용법에 따라 조기에 반복 함수를 종료시킬 수 있다.


every()

  • 모두 판별함수의 조건을 만족해야하기 때문에 다른 경우가 나오는 순간 리턴된다.(boolean)

some()

  • 하나라도 판별함수를 만족한다면 참이기 때문에 그 순간 리턴된다.(boolean)

find()

  • 판별함수를 만족하는 첫 번째 요소의 을 즉시 반환한다

findIndex()

  • 판별함수를 만족하는 첫 번째 요소의 인덱스를 즉시 반환한다.

Reference

profile
강해지고 싶은 주니어 프론트엔드 개발자

0개의 댓글