Real Vectorism. 훨씬 더 입체적으로...
javascript groupby 억지구현 본문
반응형
정의
Array.prototype.groupBy = function(mapper = util.mandatory("mapper")) {
let keySet = new Set(this.map(mapper));
let groupObj = {};
for(const keyItem of keySet) {
groupObj[keyItem] = this.filter(item => mapper(item) == keyItem);
}
return groupObj;
};
IE에서는 사용할 수 없도록 mandatory를 사용한 소스코드. IE는 생각조차도 하지 말것.
사용
const arr = [{
"color": "red",
"gender": "female"
}, {
"color": "red",
"gender": "female"
}, {
"color": "blue",
"gender": "male"
}, {
"color": "blue",
"gender": "male"
}];
arr.groupBy(item => item["color"]);
/*
{
"red": [
{
"color": "red",
"gender": "female"
},
{
"color": "red",
"gender": "female"
}
],
"blue": [
{
"color": "blue",
"gender": "male"
},
{
"color": "blue",
"gender": "male"
}
]
}
*/
arr.groupBy(item => item["gender"]);
/*
{
"female": [
{
"color": "red",
"gender": "female"
},
{
"color": "red",
"gender": "female"
}
],
"male": [
{
"color": "blue",
"gender": "male"
},
{
"color": "blue",
"gender": "male"
}
]
}
*/
반응형
'JavaScript' 카테고리의 다른 글
Svelte + Materialize.css 데이터그리드 예시 (0) | 2024.09.18 |
---|---|
멍청한 페이스북을 멀리하세요 (0) | 2020.06.29 |
여태까지 나 혼자만 몰랐던 자바스크립트 여러줄스트링 정의법 (0) | 2020.06.24 |
자바스크립트에서의 Class (0) | 2020.06.23 |
Comments