2017-07-25 1 views

Répondre

12

Array comprehension dans JS a été proposée pour ES2016, mais ne sont jamais arrivés à la version finale. Firefox a soutenu les compréhensions pendant un certain temps, mais le support a été abandonné dans les versions ultérieures.

Vous pouvez utiliser Array#from pour obtenir quelque chose près de la compréhension.

const result = Array.from({ length: 5 }, (_, k) => `Cat #${k}`); 
 

 
console.log(result);

+1

C'est une utilisation intelligente de 'Array.from'! Pour une raison quelconque, Array.fill.map est plus rapide dans Chrome/Firefox, mais c'est * beaucoup * plus lisible. – CodingIntrigue

6

Il n'y a rien de si joli en Javascript. Au meilleur de ma connaissance, vous devez créer un nouveau tableau et utiliser .fill() pour que chaque élément soit différent de undefined. Ensuite, vous pouvez utiliser .map et retourner/travailler avec l'index de tableau plutôt que la valeur. Quelque chose comme ceci:

console.log((new Array(5)).fill(0).map((x,i) => `Cat ${i}`))

Vous trouverez peut-être des générateurs utiles: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Generator_comprehensions