2014-04-29 3 views
2

내가 30 0에서 반복해야하지만 내가 forEach의 도움으로이 작업을 수행 할 수 :채우기 빈 배열

new Array(30).forEach(console.log.bind(console); 

은 물론이 작동하지 않습니다, 그 때문에 내가 할 :

new Array(30).join(',').split(',').forEach(console.log.bind(console)); 

빈 배열을 채우는 다른 방법이 있습니까?

+1

사용을 주장합니다. –

답변

2

사실 가장 좋은 방법은 아니다 적절한 N 개의 배열을 얻는다.

다른 사람들처럼이 특별한 경우에는 for 루프를 사용하는 것이 좋습니다.

+0

그렇습니다! 나는이 길을 찾는다! 나는 그것을 일찍 보았지만 잃어 버렸다. – 3y3

0

단순히 반복 할 경우 숫자의 범위를 만들 수있는 방법을 찾고 있다면, 다음, 사실이

for (var i = 0; i < 30; i += 1) { 
    ... 
    ... 
} 

같은 for 루프를 사용하여, 당신은 할 수

console.log(Array.apply(null, {length: 30}).map(Number.call, Number)); 

0에서 29까지의 숫자가 생성됩니다. 출처 : Creating range in JavaScript - strange syntax

+0

하하 =) 나는 for/white와 공통점을 알고 있지만 ForEach와 함께 작업하는 것을 선호한다 - 코드의 캡슐화가 가장 중요하다 (속도는 중요하지 않다) – 3y3

+0

@ 3y3 정확히 무엇을하려 하는가? 결과물은 무엇입니까? – thefourtheye

+0

@ 3y3 업데이트 된 답변이 잘 보이십니까? @ raina77ow의 대답을 기반으로 한 깔끔한 해킹 ;-) – thefourtheye

0

for 루프를 사용해 볼 수 있습니다.

var range0toN = Object.keys(Array.apply(0,Array(N))); 

분명히 Object.keys 부분을 삭제할 수 있습니다 만 원하는 경우 : 새로운 배열은 [0..N) (즉, 포함하지 N) 범위를 제작하는 간단한 방법이,

var index,  // we use that in the for loop 
     counter, // number of elements in array 
     myArray; // the array you want to fill 

    counter = 30; 
    myArray = []; 

    for (index = 0; index < counter; index += 1) { 

     myArray[index] = []; 
     /* 
     // alternative: 
     myArray.push([]); 
     // one-liner 
     for (index = 0; index < counter; index += 1) myArray.push([]); 
     */ 
    } 
-1

대신 루프 foreach

var data = [1, 2, 3]; 
data.forEach(function(x) { 
    console.log(x); 
});