在 Javascript 中使用 .reduce() 创建字符串

Create strings using .reduce() in Javascript

我需要能够获取字符串列表,并列出这些字符串的所有可能组合。

["asdf", "ghj","ew","ptum"]

它应该得到这样的列表,最多 n

["agep", "aget", "ageu", ... "fjwm"]

我要怎么做才能得到这些?

您可以从字符串列表中创建一个字母数组,就像您的情况一样 -> 字符串列表:

list = ["asdf", "ghj","ew","ptum"]

字母数组为:-

arr = ["a","s",...,"m"]

然后遍历数组,每个字母与数组中的其他字母组合...

逻辑会是这样...

//for strings of length 3 ..
for(i in arr){
   for(j in arr){
      for(k in arr){
          if(i!=j && j!=k)
              result=i+j+k
                   }
                }
             }

p.s我不喜欢 JS,我只是告诉了一个逻辑来做到这一点,你现在可以用你的语言实现逻辑。

你问的是相对微不足道的......一些 for 循环可以很容易地做到这一点。下面是您可以使用的一种方法。

var input = ["asdf", "ghj", "ew", "ptum"];

function combinations(r, n) {
  var o = [];
  if (r.constructor.name === "String")
    r = r.split("");
  if (n.constructor.name === "String")
    n = n.split("");

  r.forEach(function(i) {
    n.forEach(function(j) {
      o.push(i + j);
    })
  })
  return o;
}

document.write("<pre>"+JSON.stringify(input.reduce(combinations),null,2)+"</pre>");