js把对象属性按键值顺序排序

话不多说,上段代码体验一下

var obj = {
    name: 'Tom',
    age: 18,
    sex: 'male',
    career: 'student'
}; //要排序的对象
function objKeySort(obj) {
    //先用Object内置类的keys方法获取要排序对象的属性名,再利用Array原型上的sort方法对获取的属性名进行排序,newkey是一个数组
    var newkey = Object.keys(obj).sort();
    //创建一个新的对象,用于存放排好序的键值对
    var newObj = {};
    for (var i = 0; i < newkey.length; i++) {
        //向新创建的对象中按照排好的顺序依次增加键值对
        newObj[newkey[i]] = obj[newkey[i]];
    }
    return newObj;
}
console.log(objKeySort(obj))

简单说一下步骤,先通过Object.keys()方法获取到对象的属性名,然后调用数组的排序方法sort(),按照属性名升序排列,如果需要倒序排列则在执行完sort()方法之后再执行一次reverse()方法即可。然后创建一个新对象按照排好的顺序依次向这个新对象中增加键值对,最后返回这个对象。

本文来自投稿,不代表微擎百科立场,如若转载,请注明出处:https://www.w7.wiki/develop/2397.html

发表评论

登录后才能评论