JS object里可以按key值排序吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS object里可以按key值排序吗相关的知识,希望对你有一定的参考价值。

例:var obj=a:[1,2,3,],d:[1,2,3],b:[1,2,3],c:[1,2,3];
什么方法才能让obj变成a:[1,2,3],b:[1,2,3],c:[1,2,3],d:[1,2,3]这样根据key来排列顺序?

可以按key值排序
代码如下:
var mobile = str[1].substring(1);
var conferenceId=str[2];
var callType=str[3];
//报警处理(通过预定义的+H组)
var isAlarm=false;
if(callType=='3') //预定义组呼入
var preGroup=this.homeU.preGroup;
var groupName=preGroup[conferenceId];
if(groupName && groupName.indexOf('+H')==0)
isAlarm=true;



console.log(groupId+"--根据组号获得组名------->");
var aa = this.homeU.preGroup;
console.log("--根据组号获得组名------->"+aa);

var groupName = aa.groupId;

得到的groupName 是undefined

js中想根据动态key得到某对象中相对应的value的方法有二:
一、var key = "name1";
var value = obj[key];
二、var key = "name1";
var value = eval("obj."+key);
参考技术A 排序一般针对的是数组,最为一个对象基本上没有遇到过对象key排序的,感觉这样没有任何意义
如果非要这样的话,转成为对象数组再排序[a:[],b:[]...]
var test= [
id:1,name:"a",score:22,
id:2,name:"b",score:33,
id:3,name:"c",score:44
]

test= test.sort(function(a,b) //这里开始执行排序

return a.score> b.score?1:-1;
);
如果你只是项把对象转换成为json格式的字符串,那么可以JSON.stringify,JSON这个js包应该大多数浏览器都支持追问

我是在练习写个全国城市选取插件.ABCD:A:[安阳,安庆],B:[北京,北海],因为转换城市名是随机的,所以生成后不一定按ABC字母顺序排,就想会不会有按KEY排序的方法.的确在js里好像是没有.后来是单独把ABCD中的key提出来在一个数组,然后对这个数组排序,再根据这个数组输出key对应的值.不过还是谢谢你,以后有问题,会再请教你啦.

本回答被提问者采纳

以上是关于JS object里可以按key值排序吗的主要内容,如果未能解决你的问题,请参考以下文章

按属性名称(字符串值)排序列表? [复制]

按自然顺序对字典键进行排序[重复]

C++中有专门给对象数组排序的类方法吗,就像Java中的sort

json对象排序把key中的value值排序

Map排序(按key排序,按value排序)

js怎么删除对象数组的内容?