2017-07-10 3 views
0
data = 
    {"user" : [ 
    { 
     "id" : 1, 
     "name" : "jeboo", 
     "level": 1   
    }, 
    { 
     "id" : 2, 
     "name" : "yoyo", 
     "level": 1 
    }, 
    { 
     "id" : 3, 
     "name" : "yaya", 
     "level": 2   
    }, 
    { 
     "id" : 4, 
     "name" : "yeye", 
     "level": 2 
    }, 
    { 
     "id" : 5, 
     "name" : "yiyi", 
     "level": 3  
    }, 
    { 
     "id" : 6, 
     "name" : "jebee", 
     "level": 3   
    } 
]} 

dies ist, wie ich Json ObjektWie kann ich Paar des Json Objekt erhalten in Javascript

var obj = JSON.stringify(data); 
var parse = JSON.parse(obj);     
$.each(parse, function(key, object) {          
    $.each(object, function(index, val) { 
    console.log(index, val);       
    });      
}); 

mein Ziel das Array unter

Objekt zu erzeugen, wollen bekommen 0 + 1 Objekt = erstes Paar

Objekt 2 Objekt 3 + = zweites Paar

Objekt 4 + Objekt 5 = drittes Paar

+0

möchten Sie die Paare in Array sein? –

+0

für (var i = 0; i

+0

[Es gibt kein "JSON-Objekt"] (http://benalman.com/news/2010/03/theres) -no-so-thing-as-a-json /) – str

Antwort

0

Angenommen, Sie Objekte wollen mit dem gleichen level paarweise, Sie Array#reduce dies zu erreichen, verwenden können:

var data = 
 
    {"user" : [ 
 
    { 
 
     "id" : 1, 
 
     "name" : "jeboo", 
 
     "level": 1   
 
    }, 
 
    { 
 
     "id" : 2, 
 
     "name" : "yoyo", 
 
     "level": 1 
 
    }, 
 
    { 
 
     "id" : 3, 
 
     "name" : "yaya", 
 
     "level": 2   
 
    }, 
 
    { 
 
     "id" : 4, 
 
     "name" : "yeye", 
 
     "level": 2 
 
    }, 
 
    { 
 
     "id" : 5, 
 
     "name" : "yiyi", 
 
     "level": 3  
 
    }, 
 
    { 
 
     "id" : 6, 
 
     "name" : "jebee", 
 
     "level": 3   
 
    } 
 
]}; 
 

 
var r = data.user.reduce(function(res, obj) { 
 
    res[obj.level - 1] = res[obj.level - 1] || []; 
 
    res[obj.level - 1].push(obj); 
 
    return res; 
 
}, []); 
 

 
console.log(r);

EDIT

Wenn Sie die Objekte koppeln möchten nach ihrer Position in der Anordnung und unabhängig von level Eigentum dann yo Sie können das index Argument des Rückrufs und ein wenig Mathematik verwenden:

var r = data.user.reduce(function(res, obj, idx) { 
    res[Math.floor(idx/2)] = res[Math.floor(idx/2)] || []; 
    res[Math.floor(idx/2)].push(obj); 
    return res; 
}, []); 
+0

Danke für die tolle Antwort. Können Sie mir bitte helfen, meine Frage zu markieren sei positiv :) –

+0

aber ich bin nicht abhängig von der Ebene Eigenschaft, ich möchte das Objekt Array paaren –

+0

@dottertomorrow Siehe die Bearbeitung in meiner Antwort. – abhishekkannojia

Verwandte Themen