애석하게도 자바스크립트에는 range문법이 없다
파이썬을 써보셨다면 알수있는 문법인데
for i range(0,10):...
위와 같이 0부터 9까지 즉 10번을 반복하는 for문을
for (let i=0;i<10;i++){..}
위와 같이 불편한 방식으로 하지않고 좀더 간결하게 할수있는 문법이다
하지만 자바스크립트에는 없다 rust에도 있는데 대체 자바스크립트는..
아무튼 그래서 늘 저 for문 형태로 쓰다가 새로운걸 알게 되었다. 바로
Array.from({ length: 1000 }, (_, i) => {
return i;
});
let a=[];
[...Array(1000)].forEach((_, i) => {
a[i]=i;
});
[...Array(1000)].map((_,i) =>{
return i;
});
이 삼형제다
그런데 문득 어떤게 제일 성능이 좋을까 하는 생각이 들어서 그냥 한번 조사 해봤다

단순 덧셈연산으로 해본결과는 map이 가장 빨랐다
그럼 0부터 999까지 배열을 반환하는것은??

이것 역시 map이 제일 빨랐다.
역시 map 짱이다 모두 함수형 하세요
아무튼 이렇게 허무한 짧은 글로 마무리한다
range가 필요할땐 이렇게 map을 쓰자
[...Array(1000)].map((_,i) =>{
return i;
});
근데 이게 for문 보다 예쁘고 가독성이 좋은 줄은 잘 모르겠다.
난 개인적으로 좋은것 같다
ps 아 벤치마크 돌린 사이트는
https://jsben.ch/7vpfl 이 여기에요
옛날 글이지만.. 개인적인 생각인데 성능이 필요하다면 그냥 for 반복을 쓰는 게 나을 것 같습니다.
예시 코드는 전부 다 어레이를 할당하고 반복을 돌리는 거 같아서요. 혹은 직접 반복문을 감싸서 추상화 해놓는 게 좋아보이네요.
파이썬에서 반복문에서 range를 써도 상관 없는 이유는 해당 함수가 실제로 어레이를 할당하지 않고 있기 때문입니다.
python2에서의 xrange와 range의 차이를 보시면 명확해지실 겁니다.
마지막에 성능에 대한 비교가 있기 때문에 댓글 남겨요.
가독성 때문에 해당 방식을 선호하신다면 상관 없어보이네요.