如果我创建这样的对象:
var obj = {};
obj.prop1 = "Foo";
obj.prop2 = "Bar";
Run Code Online (Sandbox Code Playgroud)
生成的对象总是这样吗?
{ prop1 : "Foo", prop2 : "Bar" }
Run Code Online (Sandbox Code Playgroud)
也就是说,属性是否与我添加它们的顺序相同?
我需要按键对JavaScript对象进行排序.
因此如下:
{ 'b' : 'asdsad', 'c' : 'masdas', 'a' : 'dsfdsfsdf' }
Run Code Online (Sandbox Code Playgroud)
会成为:
{ 'a' : 'dsfdsfsdf', 'b' : 'asdsad', 'c' : 'masdas' }
Run Code Online (Sandbox Code Playgroud) 我的应用程序有一大堆对象,我将其字符串化并保存到磁盘.遗憾的是,当数组中的对象被操纵并且有时被替换时,对象上的属性以不同的顺序(它们的创建顺序?)列出.当我对数组执行JSON.stringify()并保存它时,diff会显示以不同顺序列出的属性,这在尝试使用diff和合并工具进一步合并数据时会很烦人.
理想情况下,我想在执行stringify之前按字母顺序对对象的属性进行排序,或者作为stringify操作的一部分.存在用于在许多地方操纵数组对象的代码,并且改变它们以总是以显式顺序创建属性将是困难的.
建议是最受欢迎的!
一个浓缩的例子:
obj = {}; obj.name="X"; obj.os="linux";
JSON.stringify(obj);
obj = {}; obj.os="linux"; obj.name="X";
JSON.stringify(obj);
Run Code Online (Sandbox Code Playgroud)
这两个stringify调用的输出是不同的,并显示在我的数据的差异中,但我的应用程序不关心属性的排序..对象是以多种方式构建的.
我能找到的人们使用的唯一例子$.each是html样本,而这不是我想要的.我有以下对象:
var obj = {
obj1: 39,
obj2: 6,
obj3: 'text'
obj4: 'text'
obj5: 0
};
Run Code Online (Sandbox Code Playgroud)
我像这样循环遍历对象:
$(array).each(function(index, value) {
// ...
});
Run Code Online (Sandbox Code Playgroud)
我想按obj3和排序obj4.最好不要使用异步方法,如何在输出之前(或期间)对结果进行排序?(我也不想两次循环,因为在任何给定的时间都可能有数百个.
我有一个类似的数组
var myArray = [
[ '12345678912312', '982322' ],
[ '98789213123123', '443434' ],
[ '34534565465645', '387423' ],
[ '67898798799299', '345334' ],
[ '09324242342342', '234232' ],
];
Run Code Online (Sandbox Code Playgroud)
我想转换成一个对象数组,如:
var myObject = [
{
id: '12345678912312',
num: '982322',
hour: new Date.getHours(),
},
{
id: '98789213123123',
num: '443434',
hour: new Date.getHours(),
},
{
id: '34534565465645',
num: '387423',
hour: new Date.getHours(),
},
{
id: '67898798799299',
num: '345334',
hour: new Date.getHours(),
},
{
id: '09324242342342',
num: '234232',
hour: new Date.getHours(),
},
];
Run Code Online (Sandbox Code Playgroud)
我目前正在使用Underscore,并想知道如何(以及如果)我可以使用_.object和/或 …