Hub*_*bro 5 javascript arrays jquery object
这个问题对于我当前涉及从JSON对象创建HTML表的项目之一至关重要.我以为我可以创建在将它们呈现为HTML之前对我的数组/对象进行排序的函数.我唯一担心的是订单在JavaScript中无关紧要,如果我要创建一个Array具有相同数据(以不同顺序)的新数据,那么Array它们最终会相同.
我想不出一个快速的测试方法,所以我在这里问.
其他人已回答数组,所以我只是想提供一些关于对象的信息.
在那个,标准是不存在的,但它事实上的定义是一个对象将按插入顺序枚举,但数字按升序排列并首先枚举.我通常说,但这种行为远非标准化(jQuery等框架也没有将其标准化,AFAIK).
您可以使用此jsFiddle测试浏览器:
该对象{"foo":"bar", "bar":"foo", "baz":"baz", "3":3, "2":2, "1":1}枚举如下:
foo, bar, baz, 3, 2, 1 // insertion order
1, 2, 3, foo, bar, baz // Chrome enumeration
1, 2, 3, foo, bar, baz // Opera
1, 2, 3, foo, bar, baz // IE9
foo, bar, baz, 3, 2, 1 // Firefox (!!!)
Run Code Online (Sandbox Code Playgroud)
我没有安装Safari,但我认为它与Chrome相同.在任何情况下,重点是你可以做出假设 - 它不是随机的 - 但如果你依赖于精确的枚举,那么使用数组可能是个更好的主意.
甚至更糟糕的是duri在上面指出的,删除和替换键的值会进一步改变.观察我发生的delete bar事情Object.bar = "foo"然后进行枚举:
1, 2, 3, foo, baz, bar // Chrome enumeration
1, 2, 3, foo, baz, bar // Opera
1, 2, 3, foo, bar, baz // IE9 (!!!)
foo, baz, 3, 2, 1, bar // Firefox (!!!)
Run Code Online (Sandbox Code Playgroud)