在JavaScript中生成可变长度逗号-空格分隔字符串的所有可能组合
输入: 预期产出:在JavaScript中生成可变长度逗号-空格分隔字符串的所有可能组合,javascript,arrays,string,algorithm,function,Javascript,Arrays,String,Algorithm,Function,输入: 预期产出: ["A", "B", "C"] 这是一个简单的示例,但该函数应适用于所有长度的字符串和数组。字符串可能重复某些字母,例如“AABB”,它不同于“A”和“B”。首先按元素的数量排序,然后进行字母数字排序,但此解决方案不需要。您可以使用置换函数,然后在拆分后连接特定字符串: 常量arr=[“A”、“B”、“C”]; 函数组合(字符){ var结果=[]; var f=函数(前缀、字符){ 对于(变量i=0;ie.length>1?e.split(“”).join(“”,“”)
["A", "B", "C"]
这是一个简单的示例,但该函数应适用于所有长度的字符串和数组。字符串可能重复某些字母,例如“AABB”,它不同于“A”和“B”。首先按元素的数量排序,然后进行字母数字排序,但此解决方案不需要。您可以使用置换函数,然后在拆分后连接特定字符串: 常量arr=[“A”、“B”、“C”]; 函数组合(字符){ var结果=[]; var f=函数(前缀、字符){ 对于(变量i=0;i
控制台日志(排列)代码>这实际上是我最近在scheme中一直在做的事情,您似乎在寻找的是一个从一组输入生成的过程。恰好有一个递归算法已经存在,可以解决这个问题,但它是基于数学的,我不需要在这里讨论 下面是我针对您的问题修改的一个简单JavaScript实现:
constmylist=[“A”、“B”、“C”];
常数功率集=
theArray=>theArray.reduce(
(子集,值)=>subsets.concat(
map(set=>[value,…set])
),
[[]]
);
console.log(powerSet(myList))代码>这就是我最终用来作为实现基础的内容:
您应该提供您已经尝试过的内容。您的强力搜索稍微澄清了我的问题,因为它似乎无法区分大于单个字母长度的字符串。
["A", "B", "C", "A, B", "A, C", "B, C", "A, B, C"]