javascript通过分隔符将数组一分为二的最佳方式

javascript best way to split an array into two by delimiter

本文关键字:一分为二 最佳 方式 数组 分隔符 javascript      更新时间:2023-09-26

我在javascript:中有一个数组

a=["jhgkhjgk3j_jhgkjhgk","8797823_0120120", "aaaaa_bbb"]

我想要

b=["jhgkhjgk3j","8797823", "aaaaa"]

c=["jhgkjhgk","0120120", "bbb"].

因为CCD_ 1定界符。

有没有什么方法可以在不使用for循环语句的情况下完成这项工作?

为了好玩,这里有一个ECMAScript 6解决方案。

let [b, c] = a.reduce(function(res, s, i) {
    [res[0][i], res[1][i]] = s.split("_");
    return res;
}, [[],[]]);

今天将在Firefox中运行,希望在不久的将来也能在其他浏览器中运行。

var a= ["jhgkhjgk3j_jhgkjhgk","8797823_0120120", "aaaaa_bbb"],
    b = [],
    c = [];
a.forEach(function (value, key) {
    a[key] = value.split('_');
    b.push(a[key][0]);
    c.push(a[key][1]);
});

这里有一个应该在Chrome中工作的版本。它还使用reduce:

var result = a.reduce(function(result, current, i) {
    var parts = current.split(/_/);
    result[0].push(parts[0]);
    result[1].push(parts[1]);
    return result;
}, [[], []]);
var b = result[0];
var c = result[1];

类似这样的ES5:

 var a=["jhgkhjgk3j_jhgkjhgk","8797823_0120120", "aaaaa_bbb"];
    var items = a.reduce(function(a,b){
        a[0].push(b.split('_')[0]);
        a[1].push(b.split('_')[1]);
        return a;
    },[[],[]]);
    console.log(items);