【问题标题】:Pushing each word to an array将每个单词推入数组
【发布时间】:2013-11-24 00:51:29
【问题描述】:

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

类似:

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

for ( //1 ) {
  wordArray.push( //2 );
}
  1. 遍历名为 words 的字符串中的每个单词
  2. 将该词推送到数组中

这将创建以下数组:

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

【问题讨论】:

    标签: javascript jquery arrays


    【解决方案1】:

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

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

    JS Fiddle demo.

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

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

    参考资料:

    【讨论】:

    • 可能想用.split(/\s+/)处理多个空格。
    • @Wendy:JavaScript 中的一切都是对象,包括数组。如果您尝试运行console.log( wordArray instanceof Array ),那应该会导致true,除非那是您已经尝试过的?但是由于String.prototype.split() 总是返回一个数组(据我所知,从阅读文档几次),我相当有信心这是一个返回的数组。
    【解决方案2】:

    非正则表达式选项的另一种解决方案。

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

    或者直接使用String.prototype.match()

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

    【讨论】:

      【解决方案3】:

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

      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(" ")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-22
        • 2022-11-17
        • 2018-04-19
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多