출처: 두잇! 리액트 프로그래밍 정석
const qs = 'banana=19&apple=20&orange=30';
function parse(qs) {
var queryString = qs.substr(1);
var chunks = qs.split('&');
var result = {};
for (var i = 0; i < chunks.length; i++) {
var parts = chunks[i].split('=');
var key = parts[0];
var value = parts[1];
result[key] = value;
}
return result;
}
console.log(parse(qs));
forEach로 구조분해할당을 이용하여 바로 분리함
const qs = 'banana=19&apple=20&orange=30';
function parse(qs) {
const queryString = qs.substr(1);
const chunks = qs.split('&');
let result = {};
chunks.forEach(chunk => {
const [ key, value ] = chunk.split('=');
result[key] = value;
});
return result;
}
console.log(parse(qs));
기존 배열을 새로운 배열로 변환
const qs = 'banana=19&apple=20&orange=30';
function parse(qs) {
const queryString = qs.substr(1);
const chunks = qs.split('&');
const result = chunks.map(chunk => {
const [ key, value ] = chunk.split('=');
return { key: key, value: value};
});
return result;
}
console.log(parse(qs));
배열을 다른 자료형으로 변환
const qs = 'banana=19&apple=20&orange=30';
function parse(qs) {
const queryString = qs.substr(1);
const chunks = qs.split('&');
return chunks
.map(chunk => {
const [ key, value ] = chunk.split('=');
return { key: key, value: value};
})
.reduce((result, item) => {
result[item.key] = item.value;
return result;
}, {});
}
console.log(parse(qs));