【发布时间】:2014-07-03 14:46:38
【问题描述】:
我正在尝试编写一个将数组和 n 作为参数的函数,
它将返回该数组的所有包含 n 个元素的子集,已经尝试了几件事,但仍未成功。
感谢把它放在这里的人,这个函数太复杂了,不能完成这项工作,基本上我在这里尝试做的是从一个 4 元素数组中挑选一个元素来创建它的 3 个元素子集。它甚至不以 N 作为参数。它返回所有 3 个元素子集,但也返回相同的子集,所以我也必须将它们过滤掉,无论如何我会继续尝试。
function findSubsets(array) {
var answers = [];
var firstArray = array;
for (i = 0; i < array.length; i++) {
array = firstArray;
for (var k = 0; k < array.length; k++) {
if (k != i) {
var subset = array.splice(k, 1);
answers.push(array); array.splice(k, 0, subset[0]);
}
}
}
}
【问题讨论】:
-
向我们展示您的尝试,我们将帮助您修复它并了解它为什么不起作用。
-
这甚至没有将 N 作为参数,它只是实验:我仍在尝试 function findSubsets(array) { var answers = []; var firstArray = 数组; for (i = 0; i
-
编辑您的帖子并将您尝试过的内容放在那里。它没有在 cmets 中格式化,难以阅读。
-
@RiverTam,该链接非常有帮助并且与此问题相关,感谢您找到它。使用该函数的结果,然后对其进行过滤,以便仅保留长度为 N 的子集。
标签: javascript arrays