2012-07-13 8 views
0

배열 내의 모든 요소를 ​​나열하려고하는데 as you can see 회사는 3 개의 레벨을 가지고 있지만 2 레벨까지 출력물을 출력하는 스크립트 만 작성했습니다. 어떻게 세 번째 레벨에 액세스합니까? 세 번째 배열 내에서 사용해야하는 배열은 무엇입니까? for loop?자바 스크립트 객체의 세 번째 레벨에 액세스하기

+2

에 대한 (http://archive.4chon.net/new/1934112/src_1334719344096.jpg) – zerkms

+0

임 혼란 [우리는 더 깊이 갈 필요] : 여기

은 바이올린의 고정 된 버전입니다 내가 세 번째 레벨에서 사용해야하는 배열 이름 .. 세 번째 레벨에 들어가면 좀 더 오랜 시간이 걸린다. – user1371896

+0

@dda : 나는 약 2 시간 동안 아무 것도 보지 못했다. . 좋은 작업! ;-) – zerkms

답변

0

귀하의 경우에는 세 번째 레벨에 액세스하기위한 특별한 기술이 필요하지 않습니다. 재귀 트리 워킹 함수를 작성해야 트리를 렌더링 할 수 있습니다. 모든 깊이는입니다.

당신은 당신이 원하는대로 일이 작동하게되면 http://jsfiddle.net/rtoal/xcEa9/6/, 당신이 당신의 HTML을 형성하는 작업을 할 수 있습니다

나는 여기에 코드의 빠른 패치를 완료했습니다. +=을 사용하는 반복 된 문자열 연결은 매우 비효율적 인 것으로 알려져 있지만 이는이 질문의 범위를 벗어납니다. :)

+0

대답 해 주셔서 감사합니다. 반복적으로이 작업을 수행하는 방법을 알고있었습니다 ... 나는 3의 깊이를 고정 시켰는지 알고 싶었습니다. for 루프를 어떻게 사용합니까? 어떻게해야합니까? 엔티티의 세 번째 레벨에 액세스할까요? – user1371896

+1

권장하지는 않지만 여기에 있습니다. http://jsfiddle.net/rtoal/xcEa9/7/ –

+0

감사합니다 ... 나는 그것이 권장되지 않는다는 것을 알고 있습니다 ... 나는 그것이 어떻게 할 수 있는지 알고 싶었습니다. . 적절한 프로그램에서 재귀를 사용했습니다.이 질문은 호기심에서 벗어났습니다. – user1371896

2

당신이 찾고있는 것은 재귀입니다. http://jsfiddle.net/jEmf9/

function generateEntity(obj) { 
    var html = []; 

    var name = obj.entity; 
    html.push('<li>'); 
    html.push(name); 
    html.push('</li>'); 
    var arrayName = name.replace(/\s/gi, '_'); 
    if (obj[arrayName] == undefined) { 
     return html.join(''); 
    } 

    var entity = obj[arrayName]; 
    for (var i = 0; i < entity.length; i++) { 
     html.push('<ul>'); 
     html.push(generateEntity(entity[i])); 
     html.push('</ul>'); 
    } 
    return html.join(''); 
} 
+1

재미있는 - 49 분짜리 질문과 처음 두 답변이 8 초 간격으로 나옵니다. :) 깨끗한 버전 +1. –

+0

웃긴다. 나는 몇 분 전에 그것을 끝내었을 것이지만, 나는 단지'+ ='코드를 남겨 둘 수 없었다. 아마도 OCD를 만질 것이다. – Bill

+0

해답을 주셔서 감사합니다. 반복적으로이 작업을 수행하는 방법을 알고 있습니다 ... bt. 깊이 3을 고정 시켰는지 알고 싶습니다. for 루프를 어떻게 사용합니까? 엔티티? – user1371896

관련 문제