javascript - 数组中大小 N 的组合

标签 javascript arrays

我正在尝试构建一个 javascript 函数以从数组中获取大小为 N 的所有组合。 可以说我得到了:

const Xarray = ["19", "21","42","23",  "25", "28"];
const n = 4;

combinationsOfN(Xarray, n) =>

[ ["19", "21", "42", "23"],
  ["19", "21", "42", "25"],
  ["19", "21", "42", "28"],
  ["19", "21", "23", "25"],
  ["19", "21", "23", "28"],
  ["19", "21", "25", "28"],
…. ]

最佳答案

自己做这件事可能相当困难,因为我已经尝试过了。已经有一个 js 工具可以为您执行此操作,combinations.js

/**
 * Copyright 2012 Akseli Palén.
 * Created 2012-07-15.
 * Licensed under the MIT license.
 */
function k_combinations(set, k) {
    var i, j, combs, head, tailcombs;
    if (k > set.length || k <= 0) {
        return [];
    }
    if (k == set.length) {
        return [set];
    }
    if (k == 1) {
        combs = [];
        for (i = 0; i < set.length; i++) {
            combs.push([set[i]]);
        }
        return combs;
    }
    combs = [];
    for (i = 0; i < set.length - k + 1; i++) {
        head = set.slice(i, i+1);
        tailcombs = k_combinations(set.slice(i + 1), k - 1);
        for (j = 0; j < tailcombs.length; j++) {
            combs.push(head.concat(tailcombs[j]));
        }
    }
    return combs;
}
function combinations(set) {
    var k, i, combs, k_combs;
    combs = [];
    for (k = 1; k <= set.length; k++) {
        k_combs = k_combinations(set, k);
        for (i = 0; i < k_combs.length; i++) {
            combs.push(k_combs[i]);
        }
    }
    return combs;
}
	
var array = ["19", "21","42","23", "25", "28"];

document.body.innerHTML += "<pre>" + JSON.stringify(k_combinations(array, 4), false, "\t") + "</pre>";

关于javascript - 数组中大小 N 的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37075180/

相关文章:

javascript - JS : How does event. 涉及属性(property)工作?

错误类型的 C# 数组可能吗?

c# - 如何让我的按钮在 Unity 中使用 C# 做不同的事情?

arrays - 如何在不使用 ".reverse()"的情况下在 Swift 中反转数组?

C++ : Turn char array into a string that is printed

javascript - 移动菜单按钮位于页面顶部

javascript - 在函数调用中使用类型变量时出错

javascript - 从对象类型的字符串值创建字符串文字类型

javascript - ElevateZoom 默认缩放级别

c++ - 一个函数在main之外,它需要使用一个变量如何使用它?