一尘不染

在JSON对象的顶部添加一些内容

json

我有一个JSON对象,该对象在页面加载时启动,如下所示:

data[foo] = bar;
data[foo2] = bar2;
data[foo3] = bar3;

有没有一种方法可以在第一个元素之前注入一个元素foo,以便在执行a时for var i in data,新元素将在对象启动时添加的元素之前循环遍历?

原因是,我正在向用户显示一些项目。当用户通过javascript添加新项目时,我希望此新项目显示在所有现有项目上方,但是当我添加新项目时,即

data[newItem] = newItem;

然后,JSON对象如下所示:

data[foo] = bar;
data[foo2] = bar2;
data[foo3] = bar3;
data[newItem] = newItem;

而不是我想要的是:

data[newItem] = newItem;
data[foo] = bar;
data[foo2] = bar2;
data[foo3] = bar3;

有任何想法吗?


阅读 359

收藏
2020-07-27

共1个答案

一尘不染

在JS中,不能保证对象属性的顺序。因此,即使将它们按JSON字符串排序,当解析为JS对象时,您也永远无法预测它们的出现顺序。

最好改用数组。您可以使用该unshift()方法将项目放在第一个索引中。

var data = [bar,bar2,bar3];

data.unshift(newItem);

//data = [newItem,bar,bar2,bar3];
2020-07-27