Javascript 为什么Object.keys(data).sort()不能按预期工作?

Javascript 为什么Object.keys(data).sort()不能按预期工作?,javascript,jquery,Javascript,Jquery,我正在尝试对对象键进行排序 但是当我打印我的对象时,它总是先打印bb。有人能解释一下吗 它应该先打印aa?我已经把钥匙整理好了 我的第一个键应该是aa,第二个键应该是bb 这是我的密码 var data = { bb:"bb", aa:"cc" }; Object .keys(data) .sort(); console.log(data) 有两件事: JS中的对象没有元素的顺序,就像数组一样 Object.keys返回一个对象键数组,它不会修改对象本身,请参

我正在尝试对对象键进行排序

但是当我打印我的对象时,它总是先打印
bb
。有人能解释一下吗

它应该先打印
aa
?我已经把钥匙整理好了

我的第一个键应该是
aa
,第二个键应该是
bb

这是我的密码

var data = {
    bb:"bb",
    aa:"cc"
};
Object
    .keys(data)
    .sort();
console.log(data)
有两件事:

  • JS中的对象没有元素的顺序,就像数组一样
  • Object.keys
    返回一个对象键数组,它不会修改对象本身,请参见以下示例:
var数据={bb:“bb”,aa:“cc”};
var arr=Object.keys(数据);
arr.sort();
console.log(arr);//数组被修改了,
//但它与原始对象无关
两件事:

  • JS中的对象没有元素的顺序,就像数组一样
  • Object.keys
    返回一个对象键数组,它不会修改对象本身,请参见以下示例:
var数据={bb:“bb”,aa:“cc”};
var arr=Object.keys(数据);
arr.sort();
console.log(arr);//数组被修改了,
//但它与原始对象无关
试试这个

var data={bb:"bb",aa:"cc"};
var keys = Object.keys(data);
keys.sort();

var obj = {};
for(i = 0; i < keys.length; i++){
  obj[keys[i]] = data[keys[i]];
}

console.log(obj);
var数据={bb:“bb”,aa:“cc”};
var keys=Object.keys(数据);
keys.sort();
var obj={};
对于(i=0;i
试试这个

var data={bb:"bb",aa:"cc"};
var keys = Object.keys(data);
keys.sort();

var obj = {};
for(i = 0; i < keys.length; i++){
  obj[keys[i]] = data[keys[i]];
}

console.log(obj);
var数据={bb:“bb”,aa:“cc”};
var keys=Object.keys(数据);
keys.sort();
var obj={};
对于(i=0;i
在JavaScript中没有任何排序对象键的方法,但您可以通过这样的对象原型来完成

Object.prototype.sortKeys=函数(){
var排序={},
键,a=[];
用于(输入此项){
if(this.hasOwnProperty(key)){
a、 按键;
}
}
a、 排序();
用于(键=0;键警报(JSON.stringify(data.sortKeys());//返回按键排序的对象数据
JavaScript中没有任何方法可以对对象键进行排序,但您可以通过这样的对象原型进行排序

Object.prototype.sortKeys=函数(){
var排序={},
键,a=[];
用于(输入此项){
if(this.hasOwnProperty(key)){
a、 按键;
}
}
a、 排序();
用于(键=0;键