【问题标题】:JavaScript Reorders elements of an Object [duplicate]JavaScript重新排序对象的元素[重复]
【发布时间】:2017-09-23 05:58:21
【问题描述】:

使用 JavaScript,我正在尝试创建以下对象:

{name: "John Doe", grade: "3", 6: "six"}

请注意,第三个元素的键是一个数字,6

我创建对象如下:

var myObject = {};

// Some code goes here

myObject["name"] = "John Doe";

// Some more code goes here

myObject["grade"] = "3";

// And even more code here

myObject["6"] = "six";

现在,问题是对象的构造如下

{6: "six", name: "John Doe", grade: "3"}

请注意,元素 6: "six" 移动到对象的前面,即使它是最后添加的。

我注意到所有以数字作为键的元素都会被添加到前面,即使它们是在其他元素之后添加的。如何确保元素不会重新排列并保持我原来的顺序?

谢谢。

【问题讨论】:

    标签: javascript object key


    【解决方案1】:

    我的简单答案是不可能的。这不是问题。因为对象没有排序功能。这是对象的默认行为。而且你通过键名调用对象值,而不是索引。所以排序是没必要

    var a ={6: "six", name: "John Doe", grade: "3"};
    
    console.log(a['6']) // calling by keyname so position not a problem with that

    更新

    如果你需要一个订单。使用数组

    var myObject = [];
    
    myObject.push({name : "John Doe"});
    myObject.push({grade : "one"});
    myObject.push({6 : "six"});
    
    console.log(myObject)

    【讨论】:

    • 我了解键/值的用途。但在我们的案例中,只有在一种情况下,顺序很重要。有没有办法确保这一点?
    • 如果您需要订单,您需要在对象内部创建数组,否则您无法获得订单
    • :(好的,谢谢你的帮助
    • @Greeso:“有没有办法确保这一点?”没有。
    • @Greeso 查看我的更新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2022-01-12
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多