将最后一个对象属性移到第一个索引

时间:2019-06-26 21:37:00

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

让我说我有一个对象数组:

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": ...}开头

2 个答案:

答案 0 :(得分:0)

不能。 JavaScript对象被明确声明为 unordered 。对象属性排序在ECMAScript 6(ES2015)中得到了很大的改进,但是仍然不能保证顺序,特别是在旧版本上。

如果顺序对您而言确实很重要,则使用数组-这是一种可以保证其顺序的特定对象,但只能使用其自己的数字索引。如果您将非数字键添加到数组,该值可能会出现乱序。如果您想记住属性的插入顺序(非常有用),则应使用ES6中也引入的Map。

答案 1 :(得分:0)

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

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