javascript

js 배열

cheesecrust1008 2022. 2. 15. 21:14

1. forEach

 

ex) string :  'banana=10&apple=20&orange=10'

을 key, value로 나누기 

 

function parse(qs) {

    const queryString = qs.substr(1); // substr은 문자열 슬라이스를 담당합니다.

    const chunks = queryString.split('&');

    let result = {};

    chunks.forEach( (chunk) => {
        const[key, value] = chunnk.split('=');

        result[key] = value;

    });

return result

}

 

여기서 map 함수를 사용하면 더욱 쉽게 분리가 가능하다. 

map은 반환된 결과값으로 새로운 배열은 만드는 함수이다.

 

function parse(qs) {

    const queryString = qs.substr(1); // substr은 문자열 슬라이스를 담당합니다.

    const chunks = queryString.split('&');

 

    const result = chunks.map( (chunk) => {
        const[key, value] = chunnk.split('=');

        return {key : key, value : value};

    });

return result;

}

 

 

reudce() 함수

reduce(callbaclk, initialValue) 를 받는다.

이떄 reduce 함수는 호출한 배열의 각 요소 마다 콜백을 한번씩 실행한다. 리턴값은 누적 계산의 결과 값이다.

 

따라서 위의 예를 다르게 나타낼 수 있다.

 

function parse(qs) {

    const queryString = qs.substr(1); // substr은 문자열 슬라이스를 담당합니다.

    const chunks = queryString.split('&');

 

    const result = chunks

        .map( (chunk) => {
        const[key, value] = chunnk.split('=');

        return {key : key, value : value};

        });

 

        .reduce( (result, item) => {

        result[item.key] = item.value;

        return result;

        },{}

    });

return result;

}

 

'javascript' 카테고리의 다른 글

js 추가문법과 함수  (0) 2022.04.14
js 문법  (0) 2022.04.13
js 문법  (0) 2022.03.14
js  (0) 2022.02.21
ES6  (0) 2022.02.10