我们在进行前端开发的时候,有时需要对参数进行签名,签名很多第一步是把对象按属性名字母顺序进行排序,那么在 JS 中如何实现呢?实现方式很多,这边介绍一种通过 ES6 的方式来实现,具体如下:

const data = { // 要排序的原始对象
    name: '张三',
    age: 18,
    sex: '男',
    height: '189cm',
    weight: '80kg',
    hobby: ['跑步', '篮球', '钓鱼']
}

const sortData = { } // 排序后的对象
Object.keys(data).sort().map(key => {
    sortData[key] = data[key]
})
console.info(JSON.stringify(sortData)) // => {"age":18,"height":"189cm","hobby":["跑步","篮球","钓鱼"],"name":"张三","sex":"男","weight":"80kg"}

const reverseData = { } // 倒序后的对象
Object.keys(data).sort().reverse().map(key => {
    reverseData[key] = data[key]
})
console.info(JSON.stringify(reverseData)) // => {"weight":"80kg","sex":"男","name":"张三","hobby":["跑步","篮球","钓鱼"],"height":"189cm","age":18}

主要用到的知识点

  • array.sort(sortby):用于对数组的元素进行排序。
  • array.reverse():用于颠倒数组中元素的顺序。
  • array.map(function(currentValue, index, arr), thisValue):用于遍历数组调用函数进行处理。

具体大家可以自行百度其详细用法,这边不做展开。