如何在JavaScript中按键的数值对字典进行排序(调试用)
在JavaScript中按键的数值排序对象(用于调试)
你有如下原始对象:
{ "13.666666666666666": { "data": 0 }, "1": { "data": 0 }, "0.5": { "data": 0 } }
希望得到按键的数值顺序排序后的对象:
{ "0.5": { "data": 0 }, "1": { "data": 0 }, "13.666666666666666": { "data": 0 } }
由于你需要的是用于调试的排序后对象而非仅迭代处理,可通过以下方式实现:
实现代码
const my_dict = { "13.666666666666666": { "data": 0 }, "1": { "data": 0 }, "0.5": { "data": 0 } }; // 1. 提取键并按数值排序 const sortedKeys = Object.keys(my_dict).sort((a, b) => Number(a) - Number(b)); // 2. 用排序后的键构建新对象 const sortedObj = Object.fromEntries( sortedKeys.map(key => [key, my_dict[key]]) ); // 控制台打印即可看到排序后的结果 console.log(sortedObj);
说明
Object.keys(my_dict).sort((a, b) => Number(a) - Number(b))会把字符串键转换成数值后排序,确保顺序严格遵循数值大小。Object.fromEntries()能将排序后的键值对数组直接转换成新对象,新对象的键顺序完全匹配排序后的键数组,刚好满足调试时查看有序结构的需求。
你已知的迭代方法仅处理遍历逻辑,而上述方法能生成结构上有序的新对象,更适合调试场景下直接查看。
内容的提问来源于stack exchange,提问作者etayluz
相关产品推荐
相关产品推荐

