Javascript 排序对象嵌套且不是数组

Javascript 排序对象嵌套且不是数组,javascript,json,sorting,Javascript,Json,Sorting,我搜索如何按place.city这类对象进行排序,这些对象具有密钥id。需要保留第一把钥匙的id 我尝试了不同的方法,但总是失败,因为钥匙太多了 我无法更改objet,这个糟糕的体系结构是由API get返回的,我对此无能为力 { "123": { 0: { "place": { "city": "New York", "country": "USA" }, "person":

我搜索如何按
place.city
这类对象进行排序,这些对象具有密钥id。需要保留第一把钥匙的id

我尝试了不同的方法,但总是失败,因为钥匙太多了

我无法更改objet,这个糟糕的体系结构是由API get返回的,我对此无能为力

{
    "123": {
      0: {
        "place": {
            "city": "New York",
            "country": "USA" 
        },
        "person": {
            "name": "Bob",
            "age": 45
        }
      },
      1: {
        "place": {
            "city": "New York",
            "country": "USA" 
        },
        "person": {
            "name": "James",
            "age": 32
        }
      }
    },
    "456": {
      0: {
        "place": {
            "city": "Chicago",
            "country": "USA" 
        },
        "person": {
            "name": "Louis",
            "age": 34
        }
      },
      1: {
        "place": {
            "city": "Chicago",
            "country": "USA" 
        },
        "person": {
            "name": "Christine",
            "age": 65
        }
      }
    },
    "789": {
      0: {
        "place": {
            "city": "Dallas",
            "country": "USA" 
        },
        "person": {
            "name": "Kevin",
            "age": 27
        }
      },
      1: {
        "place": {
            "city": "Dallas",
            "country": "USA" 
        },
        "person": {
            "name": "Robert",
            "age": 55
        }
      },
      2: {
        "place": {
            "city": "Dallas",
            "country": "USA" 
        },
        "person": {
            "name": "Danny",
            "age": 62
        }
      }
    }
}
这种过滤器不能像预期的那样工作,因为我猜键位于第二个位置…
var sortedByPlace=uu.sortBy(Object.keys(data.map)(k=>({id:k,…data[k]})),(d)=>d.place.city)

您可以使用

var transformed = _.sortByOrder(obj, (e)=> { 

if(e.place){

return e.place.city

}else{
return e.name
}
}, ['asc']);
结果将是排序对象的数组

然后你就可以跑了

var mySortedArr = []
_.each(kkk,(val,key)=>{
   _.each(val,(innerVal,innerKey)=>{
    mySortedArr.push(innerVal)
   })

})

你的预期产出是多少?