Javascript에 다음과 같이 쉽게 작성할 수있는 방법이 있습니까?
[1,2,3].times do {
something();
}
유사한 구문을 지원할 수있는 라이브러리가 있습니까?
업데이트 : 명확히하기 위해- something()
각 배열 요소 반복에 대해 각각 1,2 및 3 번 호출하고 싶습니다.
답변
이 답변은 Array.forEach
라이브러리없이 네이티브 바닐라를 기반으로 합니다.
기본적으로 something()
3 번 전화하려면 다음을 사용하세요.
[1,2,3].forEach(function(i) {
something();
});
다음 기능을 고려하십시오.
function something(){ console.log('something') }
아웃 파우 트는
something
something
something
이 질문을 완료하려면 something()
각각 1 번, 2 번, 3 번 전화하는 방법이 있습니다.
2017 년, ES6를 사용할 수 있습니다.
[1,2,3].forEach(i => Array(i).fill(i).forEach(_ => {
something()
}))
또는 좋은 오래된 ES5에서 :
[1,2,3].forEach(function(i) {
Array(i).fill(i).forEach(function() {
something()
})
}))
두 경우 모두 아웃 파우 트는
아웃 파우 트는
something
something
something
something
something
something
(1 회, 2 회, 3 회)
답변
루프를 사용하십시오.
var times = 10;
for(var i=0; i < times; i++){
doSomething();
}
답변
가능한 ES6 대안.
Array.from(Array(3)).forEach((x, i) => {
something();
});
그리고 “각각 1,2 및 3 번 호출”을 원할 경우.
Array.from(Array(3)).forEach((x, i) => {
Array.from(Array(i+1)).forEach((x, i2) => {
console.log(`Something ${ i } ${ i2 }`)
});
});
최신 정보:
이것은 초기 배열을 만드는 더 최적화 된 방법 인 것 같습니다. 또한 @ felix-eve가 제안한 두 번째 매개 변수 맵 기능을 사용하도록 업데이트했습니다.
Array.from({ length: 3 }, (x, i) => {
something();
});
답변
밑줄을 언급 한 이후 :
f
호출하려는 함수가 다음과 같다고 가정 합니다.
_.each([1,2,3], function (n) { _.times(n, f) });
트릭을 할 것입니다. 예를 들어를 사용 f = function (x) { console.log(x); }
하면 콘솔이 표시됩니다.
0 0 1 0 1 2
답변
답변
답변
다음과 같이 디스트 럭처링으로 동일한 작업을 수행 할 수도 있습니다.
[...Array(3)].forEach( _ => console.log('do something'));
또는 색인이 필요한 경우
[...Array(3)].forEach(( _, index) => console.log('do something'));