可以使用以下方法,再转换为对象可以作为api接口中签名sign参数的计算
var eidtionTypeList = [ {key:104212,val:"影刻本"}, {key:104211,val:"翻刻本"}, {key:104210,val:"重刻本"}, {key:110,val:"局本"}, {key:109,val:"殿本"}, {key:108,val:"藍印本"}, {key:107,val:"朱印本"}, {key:106,val:"套印本"}, {key:105,val:"活字印本"}, {key:104,val:"刻本"}, {key:103,val:"抄本"}, {key:102,val:"寫本"}, {key:101,val:"稿本"}, {key:100,val:""}];eidtionTypeList.sort(function(a,b){return a.key+"">b.key+"";});console.log(eidtionTypeList);2019.07.20 ----------------更新
sort函数里的comparator应该返回0,1 或 -1,不是返回一个boolean。
所以上述代码中排序部分应该改为
arr.sort(function(a, b) {if (a.key+"" < b.key+"" ) {// 按某种排序标准进行比较, a 小于 breturn -1;}if (a.key+"" > b.key+"" ) {return 1;}// a must be equal to breturn 0;});参见链接
修改后的代码为
var eidtionTypeList = [ {key:104212,val:"影刻本"}, {key:104211,val:"翻刻本"}, {key:104210,val:"重刻本"}, {key:110,val:"局本"}, {key:109,val:"殿本"}, {key:108,val:"藍印本"}, {key:107,val:"朱印本"}, {key:106,val:"套印本"}, {key:105,val:"活字印本"}, {key:104,val:"刻本"}, {key:103,val:"抄本"}, {key:102,val:"寫本"}, {key:101,val:"稿本"}, {key:100,val:""}];eidtionTypeList.sort(function(a, b) {if (a.key+"" < b.key+"" ) {return -1;}if (a.key+"" > b.key+"" ) {return 1;}return 0;});console.log(eidtionTypeList);运行结果:
//--------------更新结束
对象转数组 let arr = []let obj = { dr: "dr001", ljy: "ljy002"}for(let prop in obj) { arr.push({ name: prop, ct: obj[prop] })}console.log('arr', JSON.stringify(arr, null, 2));运行结果(直接打印的arr)
数组转对象 let arr = [{ name: 'dr', ct: 'dr001'},{ name: 'ljy', ct: 'ljy002'}]let obj = {}arr.forEach(item=> { obj[item.name] = item.ct})console.log('obj', JSON.stringify(obj, null, 2));运行结果:(直接打印obj)
参考链接
https://blog.csdn.net/qq_31126175/article/details/79932365
https://www.cnblogs.com/snandy/archive/2011/03/02/1968580.html