首页 > 编程知识 正文

js对象转换为数组,js对象转对象数组

时间:2023-05-06 01:15:14 阅读:183272 作者:4946

数组中根据ASCII排序

可以使用以下方法,再转换为对象可以作为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

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。