2016-06-17 15 views
-2

Ich kann das nicht herausfinden und ich habe es seit Stunden gemacht, also sagen wir, ich habe ein Array von JSON. Ich möchte die Daten in einem neuen Array abbilden. Aber ich stecke fest, könnte jemand erklären, wie man Karte mit einem Array von Json-Objekten richtig verwendet, danke.Wie mappe ich ein Array von Objekten

var results = [{ 
    "userid": 1213, 
    "name": "jake", 
    "id": 3242, 
    "state": "ny" 
}, { 
    "userid": 1203, 
    "name": "phil", 
    "id": 3142, 
    "state": "ny" 
}, { 
    "userid": 1013, 
    "name": "kate", 
    "id": 3241, 
    "state": "js" 
}]; 

$.ajax({ 
    dataType: "json", 
    data: results, 
    success:function(data){ 
    $.map(data.results, (dat, item) { 
     var array = new Array(); 
     var groups; 
     groups = array; 
     groups.a = dat.userid; 
     groups.b = dat.name; 
     groups.c = dat.state; 
     array.push(groups); 
    } }) 
}); 
+0

Was meinst du mit 'map'? – Rayon

+3

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

+0

Warum möchten Sie " Karte"? Der Code, den du zeigst, scheint die Identität zu sein. – Adder

Antwort

1

Sie vergessen nur Rückkehr abgebildet obj.

var results = [{ 
 
    "userid": 1213, 
 
    "name": "jake", 
 
    "id": 3242, 
 
    "state": "ny" 
 
}, { 
 
    "userid": 1203, 
 
    "name": "phil", 
 
    "id": 3142, 
 
    "state": "ny" 
 
}, { 
 
    "userid": 1013, 
 
    "name": "kate", 
 
    "id": 3241, 
 
    "state": "js" 
 
}]; 
 

 

 
console.log($.map(results, function(dat, item) { 
 
    var groups = {}; 
 
    groups.a = dat.userid; 
 
    groups.b = dat.name; 
 
    groups.c = dat.state; 
 
    return groups; 
 
}));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

Ich soll das Objekt nicht zurückgeben, ich soll es in ein Array schieben –

+0

@Newbieprogrammer, Sie können im Protokoll sehen, dass die Kartenfunktion _array_ zurückgibt. Wenn dies nicht das ist, was Sie wollen, können Sie die erwartete Ausgabe bereitstellen? – Grundy

1

Zunächst müssen Sie Ihren Mapping-Code in einem Ajax-Callback setzen. Dann können Sie entweder jQuery map oder Javascript map oder einfache for-Schleife durch jedes Element im Antwort-Array durchlaufen.

$.ajax({ 
    dataType: "json", 
    data: results, 
    success: function(data) 
    { 
     var groups = data.map(function(currentItem){ 
     var group = {}; 
     group.a = currentItem.userid; 
     group.b = currentItem.name; 
     group.c = currentItem.state; 
     return group; 
     }); 
     console.log(groups); 
    } 
}); 
1

Ordnen Sie Ihr Array vor dem Aufruf von $ .ajax();

results = results.map(function(item) { 
    return { 
    a: item.userid, 
    b: item.name, 
    c: item.state; 
    }; 
}); 

//DO your thing 
$.ajax({ 
    dataType: "json", 
    data: results 
}); 
Verwandte Themen