Javascript 创建包含数组中k个连续字符串的字符串组合

Javascript 创建包含数组中k个连续字符串的字符串组合,javascript,arrays,string,Javascript,Arrays,String,如果我们有以下阵列: ["it", "wkppv", "ixoyx", "3452", "zzzzzzzzzzzz"] 如果我们试图获得k(在本例中为3)的所有可能的字符串组合,而不进行随机化,我们应该得到以下字符串: 'itwkppvixoyx' 'wkppvixoyx3452 'ixoyx3452zzzzzzzzzzzz' 因为当然, "it" + "wkppv" + "ixoyx" = "itwkppvixoyx", "wkppv" + "ixoyx" + "3452" = "wkp

如果我们有以下阵列:

["it", "wkppv", "ixoyx", "3452", "zzzzzzzzzzzz"]
如果我们试图获得k(在本例中为3)的所有可能的字符串组合,而不进行随机化,我们应该得到以下字符串:

'itwkppvixoyx'
'wkppvixoyx3452
'ixoyx3452zzzzzzzzzzzz'
因为当然,

"it" + "wkppv" + "ixoyx" = "itwkppvixoyx",

"wkppv" + "ixoyx" + "3452" = "wkppvixoyx3452",

"ixoyx" + "3452" + "zzzzzzzzzzzz" = "ixoyx3452zzzzzzzzzzzz"
但是我还没有找到创建这些字符串的方法

我了解如何基于k创建包含第一个字符串和最后一个字符串的字符串,例如:

函数createStrings(数组,k){
让字符串=[];
for(设i=0;ilog(createStrings([“it”、“wkppv”、“ixoyx”、“3452”、“zzzzzz”]、3))这是滑动窗口的问题,其中窗口大小为
k

解决方案是制作一个初始窗口,然后将其向末端滑动

我的文档解决方案在这里

函数createCombinations(stringArray,k){
//定义一个空数组来存储组合
让结果=[];
//为启动窗口创建一个组合
让initialWindow='';
for(设i=0;i',initialWindow,initialWindow.length);
//log('Remove first entry->',stringArray[i-k],stringArray[i-k].length);
//console.log('After remove->',initialWindow.slice(stringArray[i-k].length));
//删除k个上一个元素并添加下一个元素
initialWindow=initialWindow.slice(stringArray[i-k].length)+stringArray[i];
//log('addnext->'之后,初始化窗口);
结果。推送(初始化窗口);
}
返回结果;
}
/*测验*/
log(创建组合(['1','2','3','4','5','6','7','8'],3));
log(createCombinations(['This','is','Some','Random','String'],4));
log(createcompositions(['What','Am','I','Doing','Here','Some','Other'],2));

log(createcompositions(['1','2','3','4','5','6','7'],3))这是滑动窗口的问题,其中窗口大小为
k

解决方案是制作一个初始窗口,然后将其向末端滑动

我的文档解决方案在这里

函数createCombinations(stringArray,k){
//定义一个空数组来存储组合
让结果=[];
//为启动窗口创建一个组合
让initialWindow='';
for(设i=0;i',initialWindow,initialWindow.length);
//log('Remove first entry->',stringArray[i-k],stringArray[i-k].length);
//console.log('After remove->',initialWindow.slice(stringArray[i-k].length));
//删除k个上一个元素并添加下一个元素
initialWindow=initialWindow.slice(stringArray[i-k].length)+stringArray[i];
//log('addnext->'之后,初始化窗口);
结果。推送(初始化窗口);
}
返回结果;
}
/*测验*/
log(创建组合(['1','2','3','4','5','6','7','8'],3));
log(createCombinations(['This','is','Some','Random','String'],4));
log(createcompositions(['What','Am','I','Doing','Here','Some','Other'],2));
log(createcompositions(['1','2','3','4','5','6','7'],3))较短的备选方案,包括和:

constcreatestrings=(a,k)=>a.slice(k-1).map((v,i)=>a.slice(i,i+k).join(“”))
log(createStrings([1,2,3,4,5,4])
log(createStrings([“it”、“wkppv”、“ixoyx”、“3452”、“zzzzzzzz”]、3))
较短的选项,带有和:

constcreatestrings=(a,k)=>a.slice(k-1).map((v,i)=>a.slice(i,i+k).join(“”))
log(createStrings([1,2,3,4,5,4])

log(createStrings([“it”、“wkppv”、“ixoyx”、“3452”、“zzzzzzzz”]、3))
可以使用类似滑动窗口的功能。可以使用类似滑动窗口的功能。