2012-06-25 7 views
0

여기에 my code's jsfiddle입니다. 당신이 코드의 결과에 차이가 볼 수있는 동안 t자바 스크립트 재귀 함수가 잘못 대답

다음
function test(i) 
{ 
    if(i==2) 
     return {title:"finished at 2", data:"empty"} 
    else 
    { 
      a=[] 
      a.push(test(i+1)) 
      a.push(test(i+1)) 
      return {title:"number "+i, data:a} 
    } 
} 

alert(JSON.stringify(test(0))) 

, test(0)

{ 
    title: "number 0", 
    data: [{ 
     title: "number 1", 
     data: [{ 
      title: "finished at 2", 
      data: "Empty" 
     }, { 
      title: "finished at 2", 
      data: "Empty" 
     }] 
    }, { 
     title: "number 1", 
     data: [{ 
      title: "finished at 2", 
      data: "Empty" 
     }, { 
      title: "finished at 2", 
      data: "Empty" 
     }] 
    }] 

을해야합니다. 어떻게 그리고 왜? 나는 그것을 올바르게하기 위해 무엇을해야합니까?

+1

이 질문을하시기 바랍니다 명확히. –

+0

이것은 바이올린이 보여주는 것이 아닙니다! – Amberlamps

+0

'alert()'대신'console.log()'를 사용하는 것이 좋습니다. 대답이 아닙니다. – PeeHaa

답변

4

재귀 함수에서 전역 변수를 사용하고 있으므로이 변수는 사용하는 동안 변경됩니다.

변경이 :

a = [] 

에 :

var a = [] 
관련 문제