将数组中的每个字符串转换为JavaScript数组

时间:2015-04-17 14:47:04

标签: javascript arrays string

我有一个长度为220的数组如下:

var tF = ["PETMEI 2011: the 1st international workshop on pervasive eye tracking and mobile eye-based interaction","Pseudo-Volumetric 3D Display Solutions", .....]

我想创建一个这样的数组:

var arr = ["PETMEI","2011:", "the", "1st", "international", "workshop".........]

我尝试过这种方法,但它并没有按预期工作:

var arr = Object.keys(tF).map(function(k) { return tF[k] });

有关如何尽快创建阵列的任何想法?

这是我的工作DEMO

感谢您的帮助!

6 个答案:

答案 0 :(得分:3)

它看起来像一个字符串,只有.split

var arr = tF[0].split(/\s/);

如果你想将所有tF扁平化为一个大数组,

var arr = [];
tF.forEach(function (e) {arr = arr.concat(e.split(/\s/));});

答案 1 :(得分:2)

您可以使用map后跟concat

var arr = tF.map(function(k) { 
    return k.split(' ') 
});
arr = Array.prototype.concat.apply([], arr);

示例: http://jsfiddle.net/whtb9ves/2/

答案 2 :(得分:1)

这是最短的一个。

var arr = tF.join(' ').split(/\s+/);

答案 3 :(得分:1)

你可以这样做:

var arr = tF.reduce(function(a, b) {
  return a.concat(b.split(/\s+/));
}, []);

console.log(arr);

<强> The demo.

答案 4 :(得分:0)

也许使用数组连接?

var tF = ["PETMEI 2011: the 1st international workshop on pervasive eye tracking and mobile eye-based interaction","Pseudo-Volumetric 3D Display Solutions"]

var newArr = [];

for(var key in tF)
{
  newArr = newArr.concat(tF[key].split(' '));
}

console.log(newArr);

答案 5 :(得分:-1)

如果我理解正确的话,你需要做的就是将字符串“拆分”为“”,把它变成一个单词数组。

http://jsfiddle.net/whtb9ves/1/

var arr = Object.keys(tF).map(function(k) { return tF[k].split(" ") });

如果您正在考虑通过单词进行拆分 - 您可能也希望将其标准化,例如删除标点符号等。这取决于应用程序......