Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

看代码:

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数组。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
269 views
Welcome To Ask or Share your Answers For Others

1 Answer

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);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...