【问题标题】:Looking for JavaScript analogues for PHP's `explode` and `implode` functions [duplicate]为 PHP 的 `explode` 和 `implode` 函数寻找 JavaScript 类似物 [重复]
【发布时间】:2020-02-03 06:18:00
【问题描述】:

我正在使用 JavaScript 做一些家庭作业。我需要做一些字符串和数组操作。我已经使用explodeimplode 函数解决了PHP 中的类似问题。我可以在 JavaScript 中使用类似的东西吗?

这是我的代码示例(针对此问题进行了简化)。我将使用explodeimplode,即使它们在 JS 中不可用:

function getHashtags(str) {
  let words = explode(' ', str);
  let hashtags = [];
  words.forEach((word) => {
    if (word[0] === '#') {
      hashtags.push(word);
    }
  });
}

function generateSentence() {
  let subjects = ['He', 'She', 'John', 'Jane', 'The girl', 'The boy', 'The dog'];
  let verbs = ['ran', 'jumped', 'ate', 'danced', 'played', 'laughed'];
  let adverbs = ['quickly', 'happily', 'merrily', 'slowly'];

  const random = (length) => Math.floor(Math.random()*length);
  let result = [];
  result.push(subjects[random(subjects.length)]);
  result.push(verbs[random(verbs.length)]);
  result.push(adverbs[random(adverbs.length)]);

  return implode(' ', result) + '.';
}

【问题讨论】:

    标签: javascript php arrays string


    【解决方案1】:

    JavaScript 有 String.splitArray.join 函数。

    String.split 很像 php 的爆炸。它需要一个参数:要拆分的字符串分隔符。在您的情况下,您可以将explode 换成split

    function getHashtags(str) {
      let words = str.split(' ');
      let hashtags = [];
      words.forEach((word) => {
        if (word[0] === '#') {
          hashtags.push(word);
        }
      });
    }
    

    对于 implode,Array.join 非常相似。此函数还采用单个(可选)参数:当数组的每个元素连接在一起时放置在它们之间的字符串。如果省略此参数,则将数组的元素连接在一起,中间没有任何东西。您可以将您对 implode 的呼叫换成 join

    但是,我应该指出,您不需要为此使用数组。既然想要的结果是一个字符串,为什么不先使用字符串连接来解决这个问题,而不先使用数组呢?像这样的:

    function generateSentence() {
      let subjects = ['He', 'She', 'John', 'Jane', 'The girl', 'The boy', 'The dog'];
      let verbs = ['ran', 'jumped', 'ate', 'danced', 'played', 'laughed'];
      let adverbs = ['quickly', 'happily', 'merrily', 'slowly'];
    
      const random = (length) => Math.floor(Math.random()*length);
      let result = "";
      result += subjects[random(subjects.length)] + " ";
      result += verbs[random(verbs.length)] + " ";
      result += adverbs[random(adverbs.length)] ".";
    
      return result;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 2011-11-27
      • 2012-11-19
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多