首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数,该函数创建所有可能性。

函数,该函数创建所有可能性。
EN

Stack Overflow用户
提问于 2018-10-22 14:09:08
回答 1查看 40关注 0票数 0
代码语言:javascript
复制
var parameter1 = "String";

var parameter 2 = "-";

function test(parameter1, parameter2) 

变量parameter1 = "String";

var参数2= "-";

功能测试(parameter1,parameter2)

结果:

字符串

斯特林

S-t环

斯泰宁

斯特-纳克

-g

圣塔-r-g

斯特琳

史特丽-恩格

S-t-rin-g

斯特林

史特南

斯泰尔-因-g

中标

三南星

三元

S-trin

St-环

圣日宁

圣瑞

圣伊恩格

圣罗庚

圣丽娜

圣日恩格

g

斯特林

史特琳

斯泰尔-伊恩-格

施泰尔仁格

Stri-ng

Stri-n

斯特林-g

**到目前为止,我们一直试图取得这一成果,但没有取得任何帮助,我们对此表示赞赏。谢谢**我试过这样做,但我想得到与上面的结果完全相同的输出

代码语言:javascript
复制
     var array1=["S","T","R","I","N","G"];
      var array2=["-"];
     combos = [] //or combos = new Array(2);

     for(var i = 0; i < array1.length; i++)
    {
     for(var j = 0; j < array2.length; j++)
     {


        combos.push(array1[i] + array2[j])
     }
  console.log(combos);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-30 20:03:01

您可以使用生成器来获取字符串的部分,并通过检查右侧是否有要拆分的字符来迭代该值。如果是这样的话,使用该字符串再次调用函数,并为结果集映射新的对。

代码语言:javascript
复制
function* split(string) {
    var i = 0;
    while (++i < string.length) {
        yield [string.slice(0, i), string.slice(i)];
    }
}

function fn(string, delimiter) {
    const join = l => r => [l, r].join(delimiter);
    var result = [string],
        parts;
    for (var [left, right] of split(string)) {
        parts = join(left);
        if (right.length > 1) {
            result.push(...fn(right, delimiter).map(parts));
        } else {
            result.push(parts(right));
        }
    }
    return result;
}

console.log(fn('String', '-'));
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

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

https://stackoverflow.com/questions/52931377

复制
相关文章

相似问题

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