我有以下代碼:For循環太慢
var Combinatorics = require('js-combinatorics');
var fs = require('fs');
cp = Combinatorics.cartesianProduct(
["4", "@", "/\\", "/-\\", "^", "∂", "λ", "α", "(!", "Z", "α"], ["1²", "2", "?", "P\\", "[\"/_", "l\"/_", "|-", "|2", "|?", "®", "12", "/2", "I2", "|^", "|~", "(r)", "|`", "l2", "Я", "ʁ", "я"], ["#", "(-)", ")-(", "/-/", "4", "<~>", "[-]", "\\-\\", "]-[", "]~[", "{-}", "{=}", "|-|", "|~|", "}{", ":-:", "}-{", "н"], ["!", "'", "1", "[]", "][", "|", "¦", "¡", ":", "]", "ι"], ["&", "3", "€", "£", "ë", "[-", "|=-", "ə", "ε"]
);
for(var index = 0; index < cp.length; ++index) {
//may be not the best idea, but in this way I will add new line to each word when saving them into array
var aux = cp.toArray()[index] + '\n';
console.log(cp.toArray()[index])
var contents = fs.appendFile("./output.txt", aux,
function(error) {
if(error) {
console.log("error writing");
}
});
}
它會生成411642分的話,將新生產線「\n
」保存到output.txt的
此代碼的工作,如果快我沒有生成這麼多的單詞,但在我的情況下,要生成411642個單詞,並且我使用output.txt中的「\n
」在換行符中編寫了它們。我使用此代碼的速度大約爲82字/ 1分鐘。它超級慢。我不明白爲什麼?我怎樣才能讓它快速?
歡迎來到組合世界。您生成一個呈指數級增長的結果集。 Javascript並不是最快的語言。 –
@EricJ。那麼,我可以在這裏使用獲取我的單詞列表的最簡單,最快捷的方式)? – cebit933
如果您使用console.log運行循環,請將其刪除,它會使速度更快。 –