📝 TIL

[TIL] JS forEach(), map(), filter()

오늘 ONEUL 2022. 4. 13. 22:37

✍ Today I Learned

  • [절기를 맞춰라]
    • 결괏값 저장은 전역 변수뿐만 아니라 배열도 활용할 수 있다.
    • 가져오려는 데이터가 값 자체인지, 배열의 길이인지, 데이터 타입이 무엇인지 흐름을 놓치지 말자.
    • 배열을 전체 순회하려면 for of 문을 활용한다. (반복문 안에서 삼항 연산자도 사용 가능)
  • 데이터를 다룰 때 배열과 객체를 혼용하여 다루는 경우가 많다. (JSON 데이터가 그런 형태)
// https://finance.naver.com/ 의 TOP 종목 데이터를 구조화 해보기
const top = {
    "거래상위": [
        {
            name: 'KODEX 200선물인버스2X',
            price: 2515,
            updown: -100,
            ratio: -3.82,
        },
        {
            name: '메이슨캐피탈',
            price: 786,
            updown: 75,
            ratio: 10.55,
        },
        {
            name: '메이슨캐피탈',
            priceInfo: [
                786, 75, 10.55, 711, 900, 133956316, 780, 772, 111787
            ]
        },{..},{..},
    ],
    "상승": [...],
    "하락": [...],
    "시가총액 상위": [...],
};
  • 객체 끝에 세미콜론!!
  • 메서드 오버 로딩(method overloading) - 메서드명이 같아도 파라미터의 형태를 달리하여 중복으로 사용할 수 있게 만드는 기법
  • forEach() 메서드는 반환 값이 따로 없다. (map(), filter() 메서드는 새로운 배열로 반환)
  • 배열에서 최댓값(최솟값)을 찾으려면 sort()로 정렬한 후 양 끝의 값을 얻을 수도 있지만 전체 배열을 정렬해야 하므로 비효율적이다.
  • Math.max.apply를 사용하면 최댓값을 찾을 수 있다.
function myArrayMax(arr) {
  return Math.max.apply(null, arr);
}
// 최솟값은 max -> min 으로 변경
  • 무언가 막힐 땐 디버거를 잘 활용하자!