Python 3.6:Jaki jest odpowiednik takiego rozumienia listy, jak ten w ES2016 lub nowszym?
[f"Cat #{n}" for n in range(5)]
daje
['Cat #0', 'Cat #1', 'Cat #2', 'Cat #3', 'Cat #4']
New do JavaScriptu, co jest równoważne w nowym ECMAScript?
Python 3.6:Jaki jest odpowiednik takiego rozumienia listy, jak ten w ES2016 lub nowszym?
[f"Cat #{n}" for n in range(5)]
daje
['Cat #0', 'Cat #1', 'Cat #2', 'Cat #3', 'Cat #4']
New do JavaScriptu, co jest równoważne w nowym ECMAScript?
Array comprehension w JS został zaproponowany przez ES2016, ale nigdy się go do ostatecznej wersji. Firefox obsługiwał objaśnienia przez pewien czas, ale obsługa została usunięta w późniejszych wersjach.
Możesz użyć Array#from, aby uzyskać coś bliskiego zrozumienia.
const result = Array.from({ length: 5 }, (_, k) => `Cat #${k}`);
console.log(result);
W Javascript nie ma nic tak uroczego. Zgodnie z moją wiedzą, musisz utworzyć nowy Array i użyć .fill()
, aby każdy element był inny niż undefined
. Następnie możesz użyć .map
i wrócić/pracować z indeksem tablicy, a nie wartością. Coś takiego:
console.log((new Array(5)).fill(0).map((x,i) => `Cat ${i}`))
można znaleźć generatory przydatne: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Generator_comprehensions
to jest do mądrego wykorzystania 'Array.from'! Z jakiegoś powodu Array.fill.map jest szybszy w przeglądarce Chrome/Firefox, ale jest * znacznie * bardziej czytelny. – CodingIntrigue