首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取JavaScript中字符串的所有子字符串

获取JavaScript中字符串的所有子字符串
EN

Stack Overflow用户
提问于 2016-11-26 21:23:48
回答 4查看 22.8K关注 0票数 12

我使用以下函数从JavaScript中的字符串中获取所有子字符串。我知道这是不正确的,但我觉得我的做法是正确的。任何建议都是很棒的。

 var theString     = 'somerandomword',
     allSubstrings = []; 

getAllSubstrings(theString);

function getAllSubstrings(str) {

  var start = 1;

  for ( var i = 0; i < str.length; i++  ) {

     allSubstrings.push( str.substring(start,i) ); 

  }

} 

console.log(allSubstrings)

编辑:如果我的问题不清楚,很抱歉。我所说的子串是指字符串中的所有字母组合(不一定是实际的单词),所以如果字符串是'abc‘,你可以有a,ab,abc,b,ba,bac等……感谢您的回复。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-11-26 21:29:21

子字符串需要两个嵌套循环。

function getAllSubstrings(str) {
  var i, j, result = [];

  for (i = 0; i < str.length; i++) {
      for (j = i + 1; j < str.length + 1; j++) {
          result.push(str.slice(i, j));
      }
  }
  return result;
}

var theString = 'somerandomword';
console.log(getAllSubstrings(theString));
.as-console-wrapper { max-height: 100% !important; top: 0; }

票数 28
EN

Stack Overflow用户

发布于 2018-07-09 03:58:28

接受答案的修改版本。为了给出排列的最小字符串长度

function getAllSubstrings(str, size) {
  var i, j, result = [];
  size = (size || 0);
  for (i = 0; i < str.length; i++) {
    for (j = str.length; j - i >= size; j--) {
      result.push(str.slice(i, j));
    }
  }
  return result;
}

var theString = 'somerandomword';
console.log(getAllSubstrings(theString, 6));

票数 3
EN

Stack Overflow用户

发布于 2020-02-07 23:10:23

下面是问题的递归解决方案

let result = [];

function subsetsOfString(str, curr = '', index = 0) {
  if (index == str.length) {
    result.push(curr);
    return result;
  }
  subsetsOfString(str, curr, index + 1);
  subsetsOfString(str, curr + str[index], index + 1);
}

subsetsOfString("somerandomword");
console.log(result);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40818769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档