2014-12-17 4 views
1

을 사항 Array.length. # 9는 "JUGGLING ASYNC"이고 지침은 3 개의 url을 params로 가져 와서 매개 변수 순서로 내용을 출력하는 것입니다. 나는 카운터를 포함하여 작업 있어요,하지만 내 원래 작동하지 않았다 :자바 스크립트 내가 fabously 명 learnyounode을 통해 일하고 있어요 특성

var http = require('http'), 
    bl = require('bl'), 
    store = [], 
    count = 0; //added later 

process.argv.forEach(function(element, index, array) { 
    if (index > 1) { 
    http.get(element, function(response) { 
     response.pipe(bl(function(err, data) { 
     store[index] = data.toString(); 
     count++; //added later 
     if (store.length == 3) { 
      store.forEach(function(e,is,a) { 
       console.log(e); 
      }); 
     } 
     })); 
    }); 
    } 
}); 

당신이 라인 (12)에 카운트 store.length를 교체 할 경우 지금은 일이 잘 작동, 난 그냥 이유 .length 알아낼 수 없습니다 배열에 충분하지 않았습니다. 누구든지 알고 있습니까? 색인 5에서 하늘의 배열에게 아이템을 줄 때 배열이 정의되어 있지 않다고 항목을 0-4로, 6 개 항목 길다는 자바 스크립트 배열에서

+0

되고 싶어요. –

+2

귀하의 질문이 무엇인지 알 수 없습니다. 원래 코드 란 무엇입니까? 무엇을 기대 했습니까? 대신 무엇을 얻었습니까? – Phrogz

+1

나는 당신이 무엇을 요구하고 있는지 전혀 모른다. –

답변

4

은, 그것은 의미한다. 예를 들어

var x = []; 
console.log(x.length); //prints 0; 
x[2] = "hello, world"; 
console.log(x.length); //prints 3; 

당신은 처음 두 요소를 건너 뛰는하지만 여전히 때 길이 3을, 당신이 store으로 첫 번째 요소를 입력 할 때, 당신이 store[2]로 입력하고, index를 사용하는

당신은 당신이 할 때 store[1] = data.toString();, 예를 들어, g : count

당신은 사용해야
+0

완벽하십시오. 고맙습니다! –

+0

아 이것은 ... 저 놀람이었다 (그러나, 아마도해서는 안) 'VAR X = []; x [ "a"] = 1; console.log (x.length); // prints 0' –

+0

예, 자바 스크립트는 꽤 느슨한 해석을하고 있습니다. 요즘에는'x [otherArray.indexOf (item)] = item'과 같은 루프에서 무언가를 사용했습니다. 다른 배열에서 그것을 찾을 수 없다면 -1로 들어가고, 이는 길이로 계산되지 않으므로 본질적으로 무시됩니다. – redbmk

0

당신의 count 변수 때문에에만 1입니다 등 길이 = 2와 배열 [undefined, 1] 그리고 당신은 내가 2 개 루프를 저장 한 것 대신 process.argv.forEach의 루프에 대한 인정되면 1

+0

아니요 지시 사항이 명확합니다. 결과를 * 매개 변수 순서 *로 출력하십시오. – Bergi

+0

@Bergi, 내 경우에는 무엇이 잘못 되었나요? –

+0

배열의 끝까지 밀어 넣으면 비 결정적 순서가됩니다. – Bergi

관련 문제