我正在尝试将元素的每个单独组合放入一个数组中。现在,我可以使用下面的方法,并删除重复项,但是这种方式对于我的使用来说已经很慢了。
下面的代码将找到低于4的2位数字的所有可能组合。现在在我实际上想要使用的代码中,最小可能的代码是6个for loop(彼此之间),数量为18(记住,这是最低限度)。
下面的代码将执行amount^[amount of for loops],或者amount^2在这种情况下为16。这意味着在我要用于该代码的代码中,它执行的18^6次数为3400万次。这是最小的,这会得到多少提高。
试图运行我的代码(在这6个福尔循环后amount = 18),它坠毁我的浏览器...我的问题是:是否有更快,更高效(不优雅,我不关心它是如何优雅。在我的)浏览器不会崩溃?
注意:此问题不是重复问题。所有其他问题都只是要求一种方法来实现,但是我已经有了一种方法。我只是想使其更高效,更快,以便其实际正常工作。
let combinations = [];
let amount = 4;
for (let a = 0; a < amount; a++) {
for (let b = 0; b < amount; b++) {
combinations.push(`${a}${b}`);
}
}
console.log(combinations);
下面的代码片段提供了有关我的代码如何工作的可能示例。
let possibilities = [];
let amount = 6; //Amount is set by me, so don't worry about it being incorrect
for (let a = 0; a < amount; a++) {
for (let b = 0; b < amount; b++) {
possibilities.push(a + b);
}
}
possibilities = [...new Set(possibilities)]; //Removes duplicates
possibilities.sort((a, b) => b - a); //Sorts in descending order
possibilities = possibilities.slice(0, 3); //Gets top 3 values
console.log(possibilities);
繁华开满天机
守候你守候我
相关分类