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)
})
})
你的预期产出是多少?