2016-06-17 8 views
-2

私はこれを理解することができず、数時間それを行っていますので、JSONの配列を持っているとしましょう。私はデータを新しい配列にマップしたいと思います。しかし、私は立ち往生しています。誰かがJsonオブジェクトの配列で適切にマップを使用する方法を説明することができます。オブジェクトの配列をマップするにはどうすればいいですか

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

あなたはmap' 'とはどういう意味ですか? – Rayon

+3

[JSONオブジェクトのようなものはありません](http://benalman.com/news/2010/03/theres-no-suchthing-as-a-json/) – Andreas

+0

なぜあなたは "地図"?あなたが示すコードはアイデンティティのようです。 – Adder

答えて

1

あなただけリターンマッピングされた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

私はオブジェクトを返すはずではない、配列 –

+0

にプッシュするはずです@Newbieprogrammer、あなたはログにそのマップ関数が_array_を返すことがわかります。これがあなたが望むものでないなら、あなたは期待される出力を提供することができますか? – Grundy

1

まず、マッピングコードをajaxコールバック内に配置する必要があります。次に、jQuery mapまたはjavacript mapまたは単純forループを使用して、レスポンス配列の各項目を反復処理できます。

$.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

$ .ajax();を呼び出す前に配列をマップしてください。

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

//DO your thing 
$.ajax({ 
    dataType: "json", 
    data: results 
}); 
関連する問題