[React JS] ES6의 3가지 배열 함수
2020. 12. 13. 16:13ㆍProgramming Language/React JS
반응형
■ foreach() 함수
* 반복문의 순번 또는 배열의 크기를 따로 변수에 저장하지 않고도 반복작업이 가능하다.
* 반환값이 없어도 된다.
function parse(qs) {
const queryString = qs.substr(1); // querystring = 'banana=10&apple=20&orange=30'
const chunks = queryString.split('&'); // chunks = ['banana=10', 'apple=20', 'orange=30']
let result = {};
chunks.forEach((chunk) => {
const [ key, value ] = chunk.split('='); // key = 'banana', value = '10'
result[key] = value; // result = { banana: 10 }
});
return result;
}
// 결과 :
// result = {banana: "10", apple: "20", orange: "30"}
■ map() 함수
* 각 배열 요소를 정의된 함수를 통해 변환한 결괏값들로 변환하고 새 배열을 반환한다.
* 반환값이 있어야 한다.
function parse(qs) {
const queryString = qs.substr(1); // querystring = 'banana=10&apple=20&orange=30'
const chunks = queryString.split('&'); // chunks = ['banana=10', 'apple=20', 'orange=30']
const result = chunks.map((chunk) => {
const [ key, value ] = chunk.split('='); // key = 'banana', value = '10'
return { key: key, value: value }; // { key: 'banana', value: '10' }
});
return result;
}
/*
결과:
result = [
{ key: 'banana', value: '10'},
{ key: 'apple', value: '20' },
{ key: 'orange', value: '30'}
];
*/
■ reduce() 함수
* 첫번째 요소부터 마지막 요소까지의 각 배열 요소의 형태를 가공하거나 변환하여 1개의 값(또는 객체)을 반환한다.
* 반환값이 있어야 한다.
function parse(qs) {
const queryString = qs.substr(1); // querystring = 'banana=10&apple=20&orange=30'
const chunks = queryString.split('&'); // chunks = ['banana=10', 'apple=20', 'orange=30']
return chunks
.map((chunk) => {
const [ key, value ] = chunk.split('='); // key = 'banana', value = '10'
return { key, value }; // { key: 'banana', value: '10' }
})
.reduce((result, item) => ({
...result,
[item.key]: item.value,
}), {});
}
/*
결과:
{banana: "10", apple: "20", orange: "30"}
*/
반응형
'Programming Language > React JS' 카테고리의 다른 글
[React JS] 디바운스와 스로틀 정리 (0) | 2021.01.05 |
---|---|
[React JS]웹팩(Webpack)과 바벨(Babel) 개념 (0) | 2020.12.23 |
[React JS] ES6의 화살표 함수 사용 방법 3가지 (0) | 2020.12.07 |
[React JS] 노드 버전 매니저(nvm)와 노드제이에스(node JS) 개념 및 역할 (0) | 2020.12.06 |
[React JS] 노드 패키지 매니저(npm)와 웹팩(webpack)의 개념 및 역할 (0) | 2020.12.05 |