javascript - 将数组的每个元素与其后的元素组合

标签 javascript recursion

我正在尝试将数组中的项目与它下面的每个项目组合起来。它应该制作一组当前字符和它下面的每个字符,并迭代地遍历数组。例如,如果我有这样一个数组:

var myArray = ['A','B','C','D']

我想要这样的输出:

AB AC AD BC BD CD

我的代码让我接近了,但我很难弄清楚其余部分。这是我目前所拥有的:

var myArray = ['A', 'B', 'C', 'D']
var sql_parts = []
var string = "";
for (var i = 0; i < myArray.length; i++) {
  recurse_function(string, i)
}
console.log(sql_parts)

function recurse_function(string_val, count) {
  if ((myArray.length - count) == 0) {
    return string_val;
  } else {
    string_val += myArray[count]
    sql_parts.push(string_val)
    recurse_function(string_val, count + 1)
  }
}

但这会产生:

["A", "AB", "ABC", "ABCD", "B", "BC", "BCD", "C", "CD", "D"]

最佳答案

这是一种解决方案:

  • 定义递归函数以采用数组和一个空列表来存储组合
  • 基本条件是数组为空或只有一个元素
  • 否则,移除第一个元素“start”
  • 遍历数组以存储其与以下元素的组合
  • 再次循环更新数组和组合

function recurse_function(array, combinations = []) {
  if(array.length <= 1) return combinations;
  const start = array.shift();
  for(let i = 0; i < array.length; i++) combinations.push(`${start}${array[i]}`);
  return recurse_function(array, combinations);
}

console.log( recurse_function(['A','B','C','D']) );

关于javascript - 将数组的每个元素与其后的元素组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68975034/

相关文章:

c - 分段故障核心转储: Function that returns the next prime number

javascript - 使用辅助类作为选择器时 JQuery 没有命中

javascript - 以编程方式从 javascript 调用 firefox 扩展

javascript - 从 javascript 运行 PHP 插入函数

c - 递归和的大 O 运行时

java - 动态创建循环以遍历 List<String> 的列表

javascript - 是否可以使用 GMail 的 OAuth 发送邮件

javascript - 选择如何更好地利用 ES6 const 并让

php - 合并两个关联数组并按一级键分组

ruby - 幂和递归算法