0
votes

Comment utiliser Array.frillage pour créer 0 ... 499 en JavaScript?

Je veux utiliser array.frillage pour créer une séquence à partir de 0 ... 499 comme xxx

actuellement, j'utilise matrice. de comme: xxx

mais comment puis-je utiliser juste array.frillage pour créer la séquence? Est-ce même possible?


6 commentaires

Je ne pense pas que tu puisses. array.frillage remplit la matrice avec les mêmes valeurs et non des valeurs différentes.


Ma contre-question serait "pourquoi?"


Vous ne pouvez pas dire que DOC dit "la méthode de remplissage () remplit (modifie) tous les éléments d'un tableau à partir d'un index de démarrage (zéro par défaut) à un indice de fin (longueur de tableau par défaut) avec une valeur statique / b>. Il renvoie la matrice modifiée ".


Il suffit d'utiliser array.from , i.e. array.from ({longueur: n}, (v, i) => i)


@Terry, il connaît les autres méthodes. C'est pourquoi je n'ai pas fermé cela comme une dupe de Stackoverflow.com/questions/55579499/...


Stackoverflow.com/ Questions / 3746725 / ...


3 Réponses :


4
votes

Non, vous ne pouvez pas le faire avec remplissage seul comme méthode de remplissage ajoute une valeur statique

La méthode de remplissage () remplit (modifie) tous les éléments d'un tableau d'un Index de démarrage (zéro par défaut) à un indice de fin (longueur de la matrice par défaut) avec une valeur statique. Il renvoie la matrice modifiée. P> blockQuote>

p>

console.log(new Array(500).fill(0).map((_,i) => i ))
console.log(Array.from(Array(500).keys()))


2 commentaires

Je n'ai pas répondu. Mais j'utiliserais foreach () pour modifier le tableau créé avec remplir , plutôt que de créer un nouveau tableau avec mappe ()


@Barmar j'ai ajouté que tout comme exemple de démontrer



2
votes

Il n'est pas possible d'utiliser remplir code> seul pour faire ce que vous demandez. Vous devrez le combiner avec une ou plusieurs autres méthodes.

Je ne peux pas dire que je recommandez em> cette approche, car cela ne ressent vraiment pas comme un javascript idiomatique, mais juste à des fins de démonstration , voici une solution qui utilise remplir code> pour remplir la matrice résultante (au lieu de simplement l'utiliser pour contourner la maladresse du constructeur de la matrice). Il est également plus verbeux et probablement moins performant que les alternatives. P>

p>

console.log(Array.from({ length: 500 }).reduce((x, y, i, a) => (a.fill(i, i, i + 1), a), []))


1 commentaires

Je préfère array.from (tableau (n), (_, i) => i) ou [... tableau (n)]. Carte ((_, i) => i) .. Bien que si c'était possible, donnez-moi array (n) .map (i) n'importe quel jour. Personne n'utilise vraiment _ de toute façon.



-2
votes

Vous pouvez générer un itérateur et le pousser à un nouveau tableau.

[...Array(5).keys()];
 => [0, 1, 2, 3, 4]


1 commentaires

La question est différente