首页 > web前端 > js教程 > 如何按值对 JavaScript 对象属性进行排序?

如何按值对 JavaScript 对象属性进行排序?

Susan Sarandon
发布: 2024-12-25 16:09:24
原创
366 人浏览过

How Can I Sort JavaScript Object Properties by Their Values?

按值对对象属性进行排序

在 JavaScript 中根据对象的值对对象的属性进行排序可以通过巧妙的解决方法来实现。我们可以将它们转换为数组,对数组进行排序,然后重新创建对象,而不是依赖于对象属性的实现相关排序。

为了实现这一点,我们使用循环:

let sortable = [];
for (var vehicle in maxSpeed) {
    sortable.push([vehicle, maxSpeed[vehicle]]);
}
登录后复制

一旦采用数组形式,我们就可以利用排序函数按值对元素进行排序:

sortable.sort(function(a, b) {
    return a[1] - b[1];
});
登录后复制

这个生成一个按排序顺序排列的数组:

// [["bike", 60], ["motorbike", 200], ["car", 300],
// ["helicopter", 400], ["airplane", 1000], ["rocket", 28800]]
登录后复制

从排序后的数组中,我们可以重建对象,同时保留所需的顺序:

let objSorted = {}
sortable.forEach(function(item){
    objSorted[item[0]]=item[1]
})
登录后复制

或者,如果 ES8 可用,我们可以利用 Object.entries 和 reduce 方法将对象转换为数组:

const sortable = Object.entries(maxSpeed)
    .sort(([,a],[,b]) => a-b)
    .reduce((r, [k, v]) => ({ ...r, [k]: v }), {});
登录后复制

由于实现原因,此方法仍然是一种解决方法怪癖,人们应该避免依赖 JavaScript 中对象属性的顺序。

以上是如何按值对 JavaScript 对象属性进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板