JS根据对象属性值value排序 输出对应的key值数组

方法一:使用es6相关语法

在这里插入图片描述

// 需求:JS根据对象属性值排序 输出对应的key值数组
// const testt = { bill: 500, sam: 480, roark: 501, tom: 999 };
// ['tom', 'roark', 'bill', 'sam']  输出这个
const MyObj = { bill: 500, sam: 480, roark: 501, tom: 999 };

// 降序排序value值
const SortValue = Object.values(MyObj).sort((a, b) => {
    return b - a;
})
// console.log(SortValue);//[999, 501, 500, 480]

// 创建结果数组
const res = {}
// keys数组
const keys = Object.keys(MyObj);
// 给value值赋值相应keys值
for (i in SortValue) {
    // console.log(i);
    keys.forEach((item) => {
        if (SortValue[i] === MyObj[item]) {
            res[item] = SortValue[i];
        }
    })
}
console.log(res);//{tom: 999, roark: 501, bill: 500, sam: 480}
console.log(Object.keys(res));//['tom', 'roark', 'bill', 'sam']

方法二:使用冒泡排序

在这里插入图片描述

//冒泡排序
const MyObj = { bill: 500, sam: 480, roark: 501, tom: 999 };

// 获得keys数组
const ArrKeys = Object.keys(MyObj);
// console.log(ArrKeys); //['bill', 'sam', 'roark', 'tom']

let temp = null;

for (let i = 0; i < ArrKeys.length - 1; i++) {
    for (let j = i + 1; j < ArrKeys.length; j++) {
        if (MyObj[ArrKeys[i]] > MyObj[ArrKeys[j]]) {
            temp = ArrKeys[i];
            ArrKeys[i] = ArrKeys[j];
            ArrKeys[j] = temp
        }
    }
}
console.log(ArrKeys.reverse()); // ['tom', 'roark', 'bill', 'sam']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值