当前位置:问答中心编程问题js 数组拆分以及拼接

js 数组拆分以及拼接

1
浩哥 提问于 2年 前
['140200', '140300', '140400', '220300', '220400']

这样一个数组,有什么办法可以让14开头的拼接在一起,22开头的拼接在一起,可能还有其他很多6位数,怎么让6位数的前两个相同的拼接在一起,最后是这样

['140200,140300,140400', '220300,220400']
2 人参与回答
1
码云 管理员 发布于 2年 前

既然都是 6 位数字组成的字符串,直接排序就是需要的结果(Array.prototype.sort() 本身就是按字符序排)

data.sort(); 

如果要按原来出现的顺序:(注意下例示例代码中 data 改了数据顺序的)

const data = ["140200", "220300", "140400", "140300", "220400"];

const r = data
    .reduce(
        (result, s) => {
            const key = s.substring(0, 2);
            const arr = result.find(([it]) => it.startsWith(key));
            if (arr) {
                arr.push(s);
            } else {
                result.push([s]);
            }
            return result;
        },
        []
    )
    .flat();

console.log(r);
// [ '140200', '140400', '140300', '220300', '220400' ]
1
音拂 发布于 2年 前
function splice(arr) {
    var ret = [];
    loop: for (var i = 0; i < arr.length; ++i) {
        for (var j = 0; j < ret.length; ++j) {
            if (ret[j].slice(0, 2) === arr[i].slice(0, 2)) {
                ret[j] += "," + arr[i];
                continue loop;
            }
        }
        ret.push(arr[i]);
    }
    return ret;
}
console.dir(splice(["140200", "140300", "140400", "220300", "220400"]));

IT互联网行业相关广告投放 更专业 更精准

立即查看 联系我们