cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Cara menggunakan Lodash/Js untuk mengumpulkan mengikut medan objek

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, ...
        },
        {...}
    ]
}
曾经蜡笔没有小新曾经蜡笔没有小新2747 hari yang lalu648

membalas semua(1)saya akan balas

  • PHP中文网

    PHP中文网2017-05-19 10:47:12

    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

    balas
    0
  • Batalbalas