Javascript - 如何将字符串拆分为嵌套数组?

Dre*_*TeK 1 javascript arrays split

我知道我可以使用split函数将字符串转换为数组,但是如何将字符串拆分两次以生成嵌套数组?

我预计这已经足够了,但它没有产生所需的输出。

var myString = "A,B,C,D|1,2,3,4|w,x,y,z|"
var item = myString.split("|");
var array = [item.split(",")];
Run Code Online (Sandbox Code Playgroud)

使用 for every 循环会更优化吗?

预期产出

var array = [
  ["A","B","C","D"],
  ["1","2","3","4"],
  ["w","x","y","z"],
];
Run Code Online (Sandbox Code Playgroud)

Cer*_*nce 5

一旦您拆分了|,请在再次.map调用之前使用 来说明嵌套情况.split。最后一个后面还有一个空格|,因此要排除它,请Boolean首先过滤:

const myString = "A,B,C,D|1,2,3,4|w,x,y,z|";
const arr = myString
  .split('|')
  .filter(Boolean)
  .map(substr => substr.split(','));
console.log(arr);
Run Code Online (Sandbox Code Playgroud)

或者您可以使用正则表达式来匹配除 之外的任何内容|

const myString = "A,B,C,D|1,2,3,4|w,x,y,z|";
const arr = myString
  .match(/[^|]+/g)
  .map(substr => substr.split(','));
console.log(arr);
Run Code Online (Sandbox Code Playgroud)