当key 是整数时 会按从小到大排序 (字典默认排序方法)
当key是非整数 / 或字符串时 : 内部顺序按照key对象创建时间来排序
let dict = {
'a' : '1',
'b' : '1',
'd' : '1'
}
Object.keys(dict) ---> ['a','b','c']
let dict = {
1 : '1', //按照字典默认会 从小到大 降序排序
2 : '1',
3 : '1'
}
Object.keys(dict) ---> [1,2,3] //因为key是从小到大 所以排序一致
// ----------------------------------------------------------------
let dict = {
3 : '1',
1 : '1',
2 : '1'
}
Object.keys(dict) ---> [1,2,3] //整数key 从小到大排序
# 当key是非整数 / 或字符串时 : 内部顺序按照key对象创建时间来排序 解释
let obj = {
'3.1' :1,
'1.1': 1,
'2.1':1,
'4.1':1
}
Object.keys(obj) ---> [3.1,1.1,2.1,4.1] //不会排序 根据obj2 key的创建时间来排序
Object.keys(Object.keys(obj2).sort()) ----> [1.1,2.1,3.1,4.1] //会排序 根据key 排序
let obj4 = {
3.13: "c",
51.15: "e",
2000.12: "b",
41.14: "d",
100.11: "a"
};
// 1. 获取字典对象的所有键
let keys = Object.keys(obj4);
// 2. 按照数值大小对键数组进行排序
keys.sort((a, b) => a - b);
// 3. 遍历排好序的键数组,创建一个新的有序字典对象
let sortedObj = {};
for (let key of keys) {
sortedObj[key] = obj4[key];
}
//--------------------------------------
let keys2 = Object.keys(obj4);
keys2.sort((a, b) => b - a);
let sortedObj2 = {};
for (let key of keys2) {
sortedObj2[key] = obj4[key];
}
//--------------------------------------
console.log(obj4);
console.log("降序", sortedObj);
console.log("升序", sortedObj2);
console.log("------------2位小数---(单双引号效果一致)--------");
let obj = {
"3.13": "c",
"5000.15": "e",
"200.12": "b",
"400.14": "d",
'10000.11': "a"
}
console.log(obj);
console.log("原key", Object.keys(obj));
console.log("升序 key", Object.keys(obj).sort((a, b) => a - b));
console.log("降序 key", Object.keys(obj).sort((a, b) => b - a));
// 使用 自动排序后的键,取对应值,即可完成 k-v型排序(key为浮点数需要sort方法,为整数不需要sort方法)
console.log("------------排序结果-----降序----前3----");
for (let x = 0; x < Object.keys(obj).sort((a, b) => b - a).length; x++) {
if (x == 3) { break } // 控制取几个
console.log(Object.keys(obj).sort((a, b) => b - a)[x] + "--------" + obj[Object.keys(obj).sort((a, b) => b - a)[x]]);
}
console.log("------------排序结果-----升序---前3-----");
for (let x = 0; x < Object.keys(obj).sort((a, b) => a - b).length; x++) {
if (x == 3) { break } // 控制取几个
console.log(Object.keys(obj).sort((a, b) => a - b)[x] + "--------" + obj[Object.keys(obj).sort((a, b) => a - b)[x]]);
}