JSlint nie lubi używania konstruktorów Array i nie ma opcji JSLint, aby je zezwalać. Dlatego, aby utworzyć tablicę o długości n, następujące elementy są niedozwolone: Tworzenie macierzy o rozmiarze n podczas tworzenia JSLinta?
var arr = new Array(n);
Czy poniższy sposób pozwala mi to obejść?
var arr = [];
arr.length = 5;
W normalnych warunkach nie jest to nic wielkiego (za pomocą dwóch linii kodu zamiast jednej), ale żałuję, że nie jest w stanie wykorzystać zwięzłe ciąg mnożnikowy Hack:
function repeat(str, times) {
return new Array(times + 1).join(str);
}
możliwy duplikat (http: // stackoverflow. com/questions/4852017/right-way-to-initialize-an-array-length-in-javascript) –
Dlaczego musisz utworzyć tablicę o wielkości n? Zważywszy, że opisałeś działanie funkcji mnożnika ciągu jako "hacka", jestem zaskoczony tym, co cię obchodzi, co jslint mówi o 'nowym Array()' ... ale możesz łatwo zaimplementować funkcję 'repeat()' z pętlą for lub '.length =', jeśli jest to jedyny powód, dla którego potrzebujesz 'new Array()'. – nnnnnn
* "Żałuję, że nie mogę używać ..." Czy masz jakieś ograniczenia, które wymagają użycia JSLint? –