问题
JS里用sort()排序对象,怎么实现?
答案
按首字母排序
let obj = {
"b": 1,
"c": 2,
"a": 3
};
let sortedKeys = Object.keys(obj).sort();
for (let key of sortedKeys) {
console.log(key + ": " + obj[key]); // 输出: a: 1, b: 2, c: 3
}
按值排序
let obj = {
"b": 1,
"c": 2,
"a": 3
};
let sortedValues = Object.values(obj).sort();
for (let value of sortedValues) {
console.log(value); // 输出: 1, 2, 3
}
还可以随意搭配其他的方法进项排序
例如按日期排序
let obj = {
"b": "2024-06-17",
"c": "2024-06-16",
"a": "2024-06-15"
};
let sortedKeys = Object.keys(obj).sort((a, b) => {
return new Date(a) - new Date(b);
});
for (let key of sortedKeys) {
console.log(key + ": " + obj[key]); // 输出: c: 2024-06-16, b: 2024-06-17, a: 2024-06-15
}
或者按值的长度排序
let obj = {
"b": "123456789",
"c": "12345678",
"a": "1234567"
};
let sortedValues = Object.values(obj).sort((a, b) => {
return a.length - b.length;
});
for (let value of sortedValues) {
console.log(value); // 输出: b: 123456789, c: 12345678, a: 1234567
}