在 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>");
我需要能够获取字符串列表,并列出这些字符串的所有可能组合。
["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>");