2016-10-18 4 views
-1

Je dois encadrer la structure d'objet comme ci-dessous dynamiquement.Pousser une propriété d'objet avec le même objet dans javascript

"1":{ 
    "A":"one.two.three" 
    }, 
    "2":{ 
    "B":"three.four.five" 
    }, 
    "3":{ 
    "c":"six.seven.eight" 
    }, 
    etc.... 

    Obj ={ 
    A: "123", 
    B: "345", 
    C :"678" 
    } 

SORTIE PRÉVUE DEVRAIT ÊTRE COMME CI-DESSOUS

"Parent" :{ 
    "one":{ 
     "two"{ 
      "three" :"123" (from Obj A) 
     } 
     } 
    "three": { 
     "four":{ 
     "five" :"345" (from Obj B) 
     } 
     } 
    etc...` 
` } 

j'ai donc essayé l'approche ci-dessous. Mais ça ne marche pas.

Var temp = {} 
temp["one"] ="1"; 
temp["two"] = temp; (and) temp["one"] 
temp["three"] = temp; (and) temp["two"] 
+0

Vraiment question vague. Vous devrez fournir vos besoins en matière de cas d'utilisation par le biais du texte plutôt que par le biais du code. Je ne suis pas sûr que quelqu'un sera capable d'interpréter votre logique '(et) temp [" one "]' "javascript" dans les exigences. –

Répondre

1
var t={}; 
var temp=t; 
for(var i=3 ; i>0 ;i--){ 
    if(i!=1)t[i]={}; 
    else t[i]=i; 
    t=t[i]; 
} 
JSON.stringify(temp); 

sortie est: "{" 3 ": {" 2 ": {" 1 ": 1}}}"

+0

Merci beaucoup –

1

Vous pouvez le faire:

var obj = {}; 
obj['temp'] = {}; 
obj['temp']['tree'] = {}; 
obj['temp']['tree']['two'] = {}; 
obj['temp']['tree']['two']['one'] = "1"; 
+0

Je peux garder un seul objet temp (temp = {}) –

+0

J'ai entrée comme ci-dessous le format –

+0

Entrée 1: { A: "one.two.three" }, 2: { B: "trois .four.five » } 3: { c: "six.seven.eight" } etc .... Obj = {A: "123", B: "345", C : "678" } La sortie doit être: "Parent": { "une": { "deux" { "trois": "123" (de Obj A) } } "trois": { "quatre": { "cinq": "345" (de Obj B) } } } –