1
REST APIから返されるデータがあります。私はAngular 2アプリのための特定のフォーマットでそれをしたいと思います。このデータをアンダースコアjでどのように変換できますか?
アンダースコアjを使用して次のデータ変換を実行するにはどうすればよいですか? RESTのAPIから返された
データ:
[
{
"ProductVariantID": "133",
"ProductID": "259",
"ProductGender": "Male",
"Size": "17.5",
"Color": "Red",
"MSRP": "0",
"MAP": "0",
"UPC": "99999106"
},
{
"ProductVariantID": "128",
"ProductID": "259",
"ProductGender": "Male",
"Size": "17.5",
"Color": "Blue",
"MSRP": "0",
"MAP": "0",
"UPC": "99999101"
},
{
"ProductVariantID": "130",
"ProductID": "259",
"ProductGender": "Male",
"Size": "19.5",
"Color": "Blue",
"MSRP": "0",
"MAP": "0",
"UPC": "99999103"
},
{
"ProductVariantID": "129",
"ProductID": "259",
"ProductGender": "Male",
"Size": "18.5",
"Color": "Blue",
"MSRP": "0",
"MAP": "0",
"UPC": "99999102"
},
{
"ProductVariantID": "132",
"ProductID": "259",
"ProductGender": "Male",
"Size": "15.5",
"Color": "Red",
"MSRP": "0",
"MAP": "0",
"UPC": "99999105"
},
{
"ProductVariantID": "131",
"ProductID": "259",
"ProductGender": "Male",
"Size": "21.5",
"Color": "Blue",
"MSRP": "0",
"MAP": "0",
"UPC": "99999104"
},
{
"ProductVariantID": "127",
"ProductID": "259",
"ProductGender": "Male",
"Size": "15.5",
"Color": "Blue",
"MSRP": "0",
"MAP": "0",
"UPC": "99999100"
}
]
私は次のようにそれを変換したいです。最上位の配列は、そのオブジェクトの "Color"プロパティでアルファベット順にソートされ、Variants配列はそのオブジェクトの数値的に "Size"プロパティによってソートされます。基本的には、色でグループ化され、元のオブジェクトを「バリアント」配列プロパティに格納した新しいオブジェクト配列が必要です。
所望の出力:
[
{
"Color": "Blue",
"Variants": [
{
"ProductVariantID": "127",
"ProductID": "259",
"ProductGender": "Male",
"Size": "15.5",
"Color": "Blue",
"MSRP": "0",
"MAP": "0",
"UPC": "99999100"
},
{
"ProductVariantID": "128",
"ProductID": "259",
"ProductGender": "Male",
"Size": "17.5",
"Color": "Blue",
"MSRP": "0",
"MAP": "0",
"UPC": "99999101"
},
{
"ProductVariantID": "129",
"ProductID": "259",
"ProductGender": "Male",
"Size": "18.5",
"Color": "Blue",
"MSRP": "0",
"MAP": "0",
"UPC": "99999102"
},
{
"ProductVariantID": "130",
"ProductID": "259",
"ProductGender": "Male",
"Size": "19.5",
"Color": "Blue",
"MSRP": "0",
"MAP": "0",
"UPC": "99999103"
},
{
"ProductVariantID": "131",
"ProductID": "259",
"ProductGender": "Male",
"Size": "21.5",
"Color": "Blue",
"MSRP": "0",
"MAP": "0",
"UPC": "99999104"
}
],
}
{
"Color": "Red",
"Variants": [
{
"ProductVariantID": "132",
"ProductID": "259",
"ProductGender": "Male",
"Size": "15.5",
"Color": "Red",
"MSRP": "0",
"MAP": "0",
"UPC": "99999101"
},
{
"ProductVariantID": "133",
"ProductID": "259",
"ProductGender": "Male",
"Size": "17.5",
"Color": "Red",
"MSRP": "0",
"MAP": "0",
"UPC": "99999101"
},
],
}
]
を作成することにより、グループの後にマップを使用することができます。 –
なぜアンダースコアを使用する必要がありますか? forループと多次元配列を使って簡単に行うことができます – theatlasroom
アンダースコアを使用する必要はありませんが、アンダースコアでこれを行うためのエレガントな方法があるようです... groupBy()関数 { "ブルー":[ { "ProductVariantID": "127"、 "商品コード": "259"、 "ProductGender": "男性"、 「それは私にこの形式のデータを提供しますサイズ ": "15.5"、 "カラー": "青"、 "MSRP": "0"、 "MAP": "0"、 "UPC": "99999100" }、 ... ]、 "赤":[ .... ] } – Foxy