【问题标题】:Move last object property to the first index [duplicate]将最后一个对象属性移动到第一个索引[重复]
【发布时间】:2019-11-08 21:31:06
【问题描述】:

假设我有一个对象数组:

let movies = [
{
    "title": "Last Flag Flying",
    "year": 2017,
    "cast": ["Steve Carell","Bryan Cranston"],
    "genres": ["Comedy","Drama"],
    "id": 1
},
{
    "title": "Lady Bird",
    "year": 2017,
    "cast": ["Saoirse Ronan","Laurie Metcalf","Tracy Letts"],
      "genres": ["Comedy","Drama"],
      "id": 2
    },
];

我想将最后一个属性id 移动到第一个索引。我的意思是每个对象都应该以{"id": ...} 开头任何帮助将不胜感激

【问题讨论】:

  • JS 对象的属性没有顺序位置。

标签: javascript arrays object ecmascript-6 javascript-objects


【解决方案1】:

你不能。 JavaScript 对象被显式声明为无序。在 ECMAScript 6 (ES2015) 中,对象属性的顺序得到了极大的改进,但仍然不能保证顺序,尤其是在旧版本上。

如果订单对您来说真的很重要,那么请使用数组 - 它是一种特定类型的对象,保证 订单,但只有其自己的数字索引。如果将非数字键添加到数组中,则该值可能会出现乱序。如果您想记住属性的插入顺序(非常有用),您应该使用 Map,它也在 ES6 中引入。

【讨论】:

    【解决方案2】:

    不知道您可能需要它来做什么,但您可以使用以下技巧:

    var X = ["I'm id", "I'm x"];
    X.id = X[0];
    X.x = X[1];
    console.log(X[0], X.id)
    

    【讨论】:

      猜你喜欢
      • 2016-09-27
      • 2021-12-15
      • 2012-04-03
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多