배열 연산

jake·2021년 8월 25일
0

JavaScript문법

목록 보기
18/21
post-thumbnail
  • foreach함수

  1. foreach는 배열에서만 쓰이는 메소드이다.
  2. 인자로 함수를 받으며, 함수의 인자값은 배열의값, 인덱스, 배열자체 3가지를 받는다.
  3. for문과 다른 특징은 변수를 선언하지 않고 사용하기 때문에 좀더 안정적인 코드라고 할 수 있다. 하지만 데이터가 방대할 경우 foreach보다는 전통적인 for문이 훨씬 빠르다. (몇천건정도의 데이터는 큰차이가 없다.)
//Typescript로 작성
type book = {
    title: string;
    copyright?: string;
    author?: string;
}
const books: string[] = [
    "헨리 6세",
    "리처드 3세",
    "실수연발",
    "말괄량이 길들이기",
    "헨리 8세"
];
books.forEach((book:string, index:number, books:string[]) => {
    console.log(book,index);
});
  • map함수

  1. 인자로 함수를 받는다.
  2. foreach와 차이점은 map 함수가 return한 값을 map함수가 차곡차곡 쌓아서 하나의 배열로 만든 다음에 리턴해준다는 차이점이 있다.
    즉, 원본배열에서 데이터를 입력받아 함수가 리턴한 데이터로 새로운 배열을 만들어서 반환하는 함수다. 배열안의 데이터를 다른형태로 변환할때 많이 사용됨
    아래 코드는 map을 좀 더 효율적으로 사용 하는법
  • filter함수

  1. 인자로 함수를 받는다.
  2. inculudes에 값이 true일 경우만 가져온다. (사이트의 필터링 항목에서 많이사용)
  • reduce함수

  1. 인자로 함수를 받는다.
  2. a에 초기값인 0을 넘겨주고 b에는 배열의 첫번째 값 10을 넘겨주고 a+b한 값을 리턴한다. 리턴값 10을 다시 a에 주고 b에는 배열의 2번째 값 5를 넘겨주고 a+b한 값을 리턴한다. 리턴값 15가나오면 위에 과정을 배열이 끝날때 까지 반복한다.
  3. reduce함수는 여러객체를 하나로 합칠때도 사용된다.
  • 유사배열(arguments)

  1. 배열과 같은 자료구조이지만 배열이 갖고있는 메소드(map,filter,reduce,forEach)를 가지고 있지 않는다.
  2. 그래서 유사배열을 배열로 바꿔주기위해 Array.from()을 쓴다. argumetns를 from의 인자로 넘겨주면 된다. reduce 메소드를 사용할 수 있게된다.
  3. 하지만 arguments를 사용하면 함수를 접었을 때 시그니처(인자)가 나타나지 않아 어떤 것에 사용하는 것인지 명확히 알 수 가없다. 그래서 전개 파라미터인 ...args를 사용하는 것이 좋다(아래 확인)
  • ...args(전개파라미터)

  1. Arry.from 대신 args를 사용
profile
열린 마음의 개발자가 되려합니다

0개의 댓글