如何将逗号和分号分隔的字符串拆分为二维数组

时间:2016-05-19 21:16:52

标签: javascript arrays

假设我有一个变量users,其中包含以下文本字符串,其中每个用户以分号分隔,每个用户的每个属性用逗号分隔:

Bob,1234,Bob@example.com;Mark,5678,Mark@example.com

如何将其拆分为多维数组变量userArray,如下所示:

[
    [Bob,1234,Bob@example.com],
    [Mark,5678,Mark@example.com]
]

使用JavaScript?

6 个答案:

答案 0 :(得分:7)

您可以使用split()map()

执行此操作
var str = 'Bob,1234,Bob@example.com;Mark,5678,Mark@example.com';
var result = str.split(';').map(e => e.split(','));
console.log(result)

答案 1 :(得分:3)

你只需要拆分两次。首先是';',然后是','生成的数组的每个元素。像这样:

"Bob,1234,Bob@example.com;Mark,5678,Mark@example.com"
    .split(';')
    .map(function(sub) { 
        return sub.split(',') 
    });

只需在浏览器控制台中运行上述代码段,您就会看到:

[
  Array[3]0: "Bob"1: "1234"2: "Bob@example.com"length: 3__proto__: Array[0],
  Array[3]0: "Mark"1: "5678"2: "Mark@example.com"length: 3__proto__: Array[0]
]

答案 2 :(得分:0)

你刚刚做了

var users = 'Bob,1234,Bob@example.com;Mark,5678,Mark@example.com';
    var userInfo = users.split(';');
    for (var i = 0, len = userInfo.length; i < len; i++) {
        userInfo[i] = userInfo[i].split(',');
    }
console.log('userInfo', userInfo);

答案 3 :(得分:0)

您可以先用分号分隔,然后用逗号分隔。

&#13;
&#13;
var str = 'Bob,1234,Bob@example.com;Mark,5678,Mark@example.com',
    array = str.split(';').map(function (a) { return a.split(','); });

console.log(array);
&#13;
&#13;
&#13;

ES6

&#13;
&#13;
var str = 'Bob,1234,Bob@example.com;Mark,5678,Mark@example.com',
    array = str.split(';').map(a => a.split(','));

console.log(array);
&#13;
&#13;
&#13;

答案 4 :(得分:0)

var arr = [];
var string = 'Bob,1234,Bob@example.com;Mark,5678,Mark@example.com';
var users = string.split(';')
for(var user in users)
      arr.push(users[user].split(','));
JSON.stringify(arr);

答案 5 :(得分:0)

如果您正在寻找一种将每个元素都放在一个数组中的衬里。

这是一个解决方案:

b.split(';').map(e => e.split(',')).reduce((acc, cur) => cur.concat(acc), []).filter(e => !!e)