javascript - Cara menggunakan Lodash/Js untuk mengumpulkan mengikut medan objek
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-19 10:45:12
0
1
654

objek json

[
    dictprovinceVOList[{
    areaId: 13257
    cityAreaList:[
    {
        areaCode: "1853"
        areaId: 13265
        areaList: 
        firstLetter:"S"
        langType:"zh_CN"
        latitude:22.124049
        longitude:
        113.559954
        parentId:13257
        pinYin:"shengfangjigetangqu"
        postCode:"820008"
        sortValue:8
        title:"圣方济各堂区"
    },
    {
        ...
    }]
    parentId: 0
    sortValue: 34
    title:"澳门特别行政区"
   },{
    areaId:13238
    cityAreaList:[
    {
        areaCode: "1853"
        areaId: 13265
        areaList: 
        firstLetter:"S"
        langType:"zh_CN"
        latitude:22.124049
        longitude:
        113.559954
        parentId:13257
        pinYin:"shengfangjigetangqu"
        postCode:"820008"
        sortValue:8
        title:"圣方济各堂区"
    },{
        ...
    }]
    parentId:0
    sortValue:33
    title:"香港特别行政区"
   }]


]

Dapatkan keputusan berikut. . Pengumpulan adalah berdasarkan medan cityAreaList: firstLetter

{
   "iniData":"S",
   "cityAreaList":[
        {
          "areaCode":"1853","areaId": 372, ...
        },
        {...}
    ]
}
曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(1)
Ty80

lodash seharusnya tidak mempunyai fungsi satu langkah

Tetapi terdapat fungsi groupBy yang boleh digunakan untuk mengumpulkan

Anda boleh menggunakan gelung untuk menggabungkan cityAreaList semua bandar ke dalam tatasusunan

let array = [];
for(let city of citylist){
  array = array.contact(city.cityAreaList)
}

kemudian

_.groupBy(array,function(obj){
      return obj["firstLetter"];
  })

Objek yang dikembalikan adalah kira-kira struktur ini

{
s:[
 {
   "areaCode":"1853","areaId": 372, ...},
 {...}
]
p:{
 ...
}
}

Kunci objek ini ialah "iniData" yang anda mahukan
Selebihnya mudah

Gunakan Object.keys() untuk mendapatkan semua kunci objek

let keys = Object.keys(object);
let newArr = [];
for(let key of keys){
newArr.push(
{
   "iniData":key,
   "cityAreaList":object[key]
}
)
}

Arr baru ini adalah hasil yang anda mahukan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan