Js实现Object按key排序
需求:请求参数名的首字母升序排列非空请求参数;
步骤:
-
将
{d:'444',a: '111', c:'333',b:'222'}
按key升序排序得到{a: '111',b:'222', c:'333',d:'444'}
; -
舍弃值为空的项,如:
{a:'',b:'22'}
则a项被舍弃;
示例代码:
const sortParams = (params = {}) => {
// 注意:若待排序的参数不为空,则排序后的字符串结尾需要拼接字符:&
// 主要是为了使 stringSignTemp 拼接成格式: 'a=11&b=22&nostr=...'
let str = '';
if (Object.keys(params).length !== 0) {
// 需要排除值为空的参数,如: {a: '11',b:''} 则str里需要排除b;
const keysList = (Object.keys(params)).sort((a, b) => a.localeCompare(b));
console.log(keysList);
keysList.forEach((key) => {
const item = params[key];
if (item !== '') {
str += `${str ? '&' : ''}${key}=${item}`;
}
});
}
console.log(str);
return str;
};
// 调用
sortParams({
'c': 112,
'a': 4546,
'k': 12,
'b': ''
})
运行结果:
{ c: 112, a: 4546, k: 12, b: ''}
a=4546&c=112&k=12
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
小森森博客!
喜欢就支持一下吧
打赏
微信
支付宝