看代码:
let arrs = [101,403,209,301,102,105,201,203,103,104,409,204,202,307]
let results =[
[101,102,103,104,105],
[201,203,204,202,209],
[301,307],
[403,409]
]
arrs数组中存储的是一些列房间号码,需要按照楼层将为其格式化,得到的结果如results数组。
let arrs = [101,403,209,301,102,105,201,203,103,104,409,204,202,307];
Object.values(arrs.reduce((r, i) => ((r[(''+i)[0]] = r[(''+i)[0]] || []).push(i), r), {}))
可维护版本:
let arrs = [101,403,209,301,102,105,201,203,103,104,409,204,202,307];
let resultMap = arrs.reduce((ret, item) => {
let level = String(item)[0];
ret[level] = ret[level] || [];
ret[level].push(item);
return ret;
}, {});
let results = Object.values(resultMap);