如何在Javascript中将带有空格的字符串转换为单个数组列表?

par*_*rth 3 javascript arrays

我有一个数组如下

var arr = ["john doe first", "robert way", "jason doe", "alex"];
Run Code Online (Sandbox Code Playgroud)

现在我想转换这个数组,如下所示.

var result = ["john", "doe", "first", "robert", "way", "jason", 
"doe", "alex"];
Run Code Online (Sandbox Code Playgroud)

快速解释是我需要将字符串的每个数组元素转换为数组并将其重置为数组.数组索引并不重要.我试图arr.split( " ")甚至arr.toString(),然后arr.split("").我不知道我在这里缺少什么.

Zen*_*noo 12

你可以简单地使用Array#joinString#split:

var arr = ["john doe first", "robert way", "jason doe", "alex"];

console.log(arr.join(' ').split(' '));
Run Code Online (Sandbox Code Playgroud)

如果您的字符串有多个空格分隔您的单词:

单击添加.filter(Boolean)以删除空字符串

var arr = ["john doe    first", "robert way", "jason doe", "alex"];

console.log(arr.join(' ').split(' ').filter(Boolean));
Run Code Online (Sandbox Code Playgroud)


gur*_*372 5

使用reduce,concatsplit

arr.reduce( (a , c) => a.concat(c.split(/\s+/)), [])
Run Code Online (Sandbox Code Playgroud)

演示

var output = ["john doe first", "robert way", "jason doe", "alex"].reduce( (a , c) => a.concat(c.split(/\s+/)), []);
console.log( output );
Run Code Online (Sandbox Code Playgroud)