如何从键值对对象中生成按值排序的键数组?
按对象值排序后提取键组成数组的方法
针对你给出的对象,要得到按值升序排序后的键数组,可以通过以下JavaScript方法实现:
实现步骤
- 转成键值对数组:用
Object.entries()把原对象拆解成[键, 值]格式的二维数组。 - 按值排序:调用
sort()方法,通过比较子数组的第二个元素(值)完成排序。因为是数字排序,用a[1] - b[1]实现升序;如果需要降序,改成b[1] - a[1]即可。 - 提取目标键:用
map()遍历排序后的数组,只保留每个子数组的第一个元素(键)。
完整代码示例
const targetObj = { "qwertyuasddf": 2, "asdfghsdfffk": 3, "zxcvvnbvcxxm": 1 }; // 分步写法,清晰展示逻辑 const keyValuePairs = Object.entries(targetObj); const sortedPairs = keyValuePairs.sort((a, b) => a[1] - b[1]); const sortedKeys = sortedPairs.map(pair => pair[0]); console.log(sortedKeys); // 输出:["zxcvvnbvcxxm","qwertyuasddf","asdfghsdfffk"]
也可以合并成一行简化写法:
const targetObj = { "qwertyuasddf": 2, "asdfghsdfffk": 3, "zxcvvnbvcxxm": 1 }; const sortedKeys = Object.entries(targetObj).sort((a, b) => a[1] - b[1]).map(pair => pair[0]); console.log(sortedKeys);
内容的提问来源于stack exchange,提问作者ashish kumar
相关产品推荐
相关产品推荐

