所以我首先被要求创建一个函数来查找可能的组合给定一组 6 个数字,范围可以从 0-9编辑请记住,用户会收到输入提示,因此输入可以更改或不同。 . 所以换句话说,输入将是 123456 或 099384 END EDIT。此函数必须返回 3 位数结果的所有可能组合,同时使用输入的 6 位数重复次数。所以它会返回 111 112 113 等。
. 我是 php/javascript 用户并选择了 javascript,以便它可以在浏览器中的脱机文件上运行。
这是我在下面构建的,效果很好。
function findthree(nums) {
for (var i = 0; i < 10; i++) {
if (in_array(i, nums)) {
for (var ii = 0; ii < 10; ii++) {
if (in_array(ii, nums)) {
for (var iii = 0; iii < 10; iii++) {
if (in_array(iii, nums)) {
$('body').append('<div>' + i + '' + ii + '' + iii + '</div>');
}
}
}
}
}
}
}
function in_array(needle, haystack) {
var length = haystack.length;
for (var i = 0; i < length; i++) {
if (haystack[i] == needle) return true;
}
return false;
}
我的问题是..我将如何创建一个类似的函数来显示每个组合,除了“组合重复”。换句话说,该函数不会返回 211,因为 112 已经返回,并且不会返回 654,因为 456 已经返回。我打算尝试使用 array_difference 函数,但无法完全弄清楚它是如何工作的。
预先感谢您的任何帮助。
在我选择的答案的帮助下找到编辑答案
function findthreenodupe(nums) {
nums = $.distinct(nums);
nums.sort(function(a, b) {
return a - b
});
alert(nums);
for (var i = 1; i < 10; i++) {
if (in_array(i, nums)) {
for (var ii = i; ii < 10; ii++) {
if (in_array(ii, nums)) {
for (var iii = ii; iii < 10; iii++) {
if (in_array(iii, nums)) {
$('body').append('<div>' + i + '' + ii + '' + iii + '</div>');
}
} // end of iii for loop
} // end of ii for loop
} // end of i for loop
}
}
}