[英]Sort javascript object without changes it's key value
I have below type of object, I want to sort on based on sort_value of object.我有以下类型的 object,我想根据 object 的 sort_value 进行排序。 I tried below solution but it gives me error.我尝试了以下解决方案,但它给了我错误。
var data = {
7:{
name: 'Test1',
city: 'Mohali',
sort_order: -1
},
9:{
name: 'Test2',
city: 'Delhi',
sort_order: 2
},
10:{
name: 'Test3',
city: 'Chicago',
sort_order: 0
}
}
I Tried this one solution我试过这个解决方案
data.sort(function(a, b) {
return parseFloat(a.sort_order) - parseFloat(b.sort_order);
});
Gives me error like this给我这样的错误
Uncaught TypeError: data.sort is not a function
Expected Output预计 Output
var Expectedop = {
7:{
name: 'Test1',
city: 'Mohali',
sort_order: -1
},
10:{
name: 'Test3',
city: 'Chicago',
sort_order: 0
},
9:{
name: 'Test2',
city: 'Delhi',
sort_order: 2
}
}
sort
is an in-built method available on Arrays. sort
是 Arrays 上可用的内置方法。
What you can do is use Object.keys(data)
which will give you array of keys ( [7,9,10]
) and sort it using the sort
function.您可以做的是使用Object.keys(data)
它将为您提供键数组( [7,9,10]
)并使用sort
function 对其进行排序。 When you have the keys sorted in the array, you can use them to update sort_order
in the data
object.在数组中对键进行排序后,可以使用它们更新data
object 中的sort_order
。
Reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.