5장 반복문을 단순하게 만들어라

설아아빠·2021년 12월 24일
0
post-thumbnail

1. 화살표 함수로 반복문을 단순하게 만들어라

        function applyGreeting(name, callback) {
            return callback(name);
        }

        console.log(applyGreeting('mark', name => `안녕 ${name}`));

2. 배열 치트 시트

map : 형태를 바꿀 수 있지만 길이는 유지된다

sort : 형태나 길이는 변경되지 않고 순서만 변경된다

filter : 길이를 변경하지만 형태는 변경하지 않는다

find : 배열을 반환하지 않는다. 한개의 데이터가 반환되고 형태는 변경되지 않는다

forEach : 형태를 이용하지만 아무것도 반환하지 않는다

reduce : 길이와 형태를 바꾸는 것을 비롯해 무엇이든 처리할 수 있다

        const price = [1, 2, '흥정가능', 3, 4,];
        const formattedPrices = price.map(v => parseFloat(v)).filter(price => price);
        console.log(formattedPrices);

3. map() 메서드로 비슷한 길이의 배열을 생성하라

        const data = [{name: 'test1', age: 30}, {name: 'test2', age: 20}];
        console.log(data.map(o => o.name));

4. filter()와 find()로 데이터의 부분집합을 생성하라

        const filtered = data.filter(o => o.age === 30);
        console.log(filtered);

        const findItem = data.find(o => o.age === 30);
        console.log(findItem);

5. forEach()로 동일한 동작을 적용하라

        filtered.forEach(o => {
            console.log(o);
        });

6. 체이닝으로 메서드를 연결하라

        data.filter(o => o.age === 30).forEach(o => {
            console.log(o);
        });

7. reduce()로 배열 데이터를 변환하라

        const data = [{name: 'test1', age: 30}, {name: 'test2', age: 20}, {name: 'test3', age: 40}];

        //결과값 덧셈으로 이용함
        const changedData = data.reduce((result, obj) => {
            return result + obj.age;
        }, 0);
        console.log(changedData);

        const changedData2 = data.reduce((result, obj) => {
            result.push(Object.assign({
                newAge: obj.age + 10
            }, obj));

            return result;
        }, []);
        console.log(changedData2);

for...in 문과 for...of 문으로 반복문을 정리하라

        const dataMap = new Map()
            .set(1, 'test1')
            .set(2, 'test2')
            .set(3, 'test3');

        for (const data of dataMap) {
            const [id, name] = data;
            console.log(id, name, data);
        }

        const data2 = {
            3: 'test1',
            4: 'test2',
            5: 'test3'
        }

        for (const id in data2) {
            console.log(id);
        }
profile
back-end(java), front-end (조금)

0개의 댓글