JS对象没有顺序。您无法以编程方式对对象进行排序。只有阵列
不是真的。当您在对象上调用JSON.stringify
时,输出字符串中属性的顺序是在该对象上定义属性的顺序。这同样适用于Object.keys(obj)
和for(var property in obj)
(假设obj
是您的对象)。你可以这样做:
var originalObject = {
"accommodation" : "Accommodation",
"bed-breakfast" : "Bed & Breakfast",
"caravan-camping" : "Caravan & Camping",
"cottages" : "Cottages",
"friends-family" : "Friends & Family",
"health-spas" : "Health Spas",
"hostels" : "Hostels",
"hotels" : "Hotels",
"self-catering" : "Self Catering",
"backpacking" : "Backpacking",
"car-touring" : "Car Touring"
};
// map your object onto an array [key, value]
var arr = _.map(originalObject, function(value, key) {
return [key, value];
});
// sort it by originalObject's values
arr.sort(function(a, b) {
return a[1].localeCompare(b[1]);
});
// create an object from an array
var obj = _.object(arr);
JSON.stringify(originalObject)
产量:
"{"accommodation":"Accommodation","bed-breakfast":"Bed & Breakfast","caravan-camping":"Caravan & Camping","cottages":"Cottages","friends-family":"Friends & Family","health-spas":"Health Spas","hostels":"Hostels","hotels":"Hotels","self-catering":"Self Catering","backpacking":"Backpacking","car-touring":"Car Touring"}"
JSON.stringify(obj)
产量:
"{"accommodation":"Accommodation","backpacking":"Backpacking","bed-breakfast":"Bed & Breakfast","car-touring":"Car Touring","caravan-camping":"Caravan & Camping","cottages":"Cottages","friends-family":"Friends & Family","health-spas":"Health Spas","hostels":"Hostels","hotels":"Hotels","self-catering":"Self Catering"}"
JS对象没有顺序。您无法以编程方式对对象进行排序。只有数组。 – Andy
我只是想说,安迪:D –
我强烈建议**不要**存储HTML转义的文本。在HTML上下文中使用它时,应将其转换为HTML。否则,你很早就混淆了你的数据方式,并且不能将它用于其他目的。 – Brad