将每个单词推到一个数组中

Pushing each word to an array

本文关键字:一个 数组 单词推      更新时间:2023-09-26

如果我有一个文本字符串,我将如何将该字符串转换为字符串中每个单独单词的数组?

类似于:

var wordArray = [];
var words = 'never forget to empty your vacuum bags';
for ( //1 ) {
  wordArray.push( //2 );
}
  1. 遍历字符串中的每个单词
  2. 将该单词推送到数组

这将创建以下数组:

var wordArray = ['never','forget','to','empty','your','vacuum','bags'];

不要迭代,只使用split()返回一个数组:

let words = 'never forget to empty your vacuum bags',
  wordArray = words.split(' ');
console.log(wordArray);

JS Fiddle演示。

并且,使用String.prototype.split()和@jfriend00建议的正则表达式(在下面的注释中):

let words = 'never forget to empty your vacuum bags',
  wordArray = words.split(/'s+/);
console.log(wordArray);

参考文献:

  • 正则表达式
  • String.prototype.split()

这里有一个可能的改写版本(非正则表达式):

可以考虑一种不涉及正则表达式的替代解决方案。

let words = '     practice   makes   perfect  ',
  wordArray = words.split(' ').filter(w => w !== '');
console.log(wordArray);

或者只使用String.protype.match()

let words = '     practice   makes   perfect  ',
  wordArray = words.match(/'S+/g);
console.log(wordArray);

如果您想遍历数组,请使用:

let wordArray = [];
let words = 'never forget to empty your vacuum bags';
let wordsSplit = words.split(" ");
for(let i=0;i<wordsSplit.length;i++) {
    wordArray.push(wordsSplit[i])
}

但不迭代,只使用会更有意义

let words = 'never forget to empty your vacuum bags';
let arrOfWords = words.split(" ")

试试下面的内容,它会有所帮助。

var wordArray = [];
var words = 'never forget to empty your vacuum bags';
wordArray = words.match(/'b[-?('w+)?]+'b/gi);
console.log(wordArray)

我已经测试了StackOverflow和其他网站上的许多方法。适用于大多数情况的方法如下:

function stringToArrayOfWords(str) {
    return str.split(' ').filter(w => w !== '')
}