相关疑难解决方法(0)

JavaScript是否保证对象属性顺序?

如果我创建这样的对象:

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 object

584
推荐指数
11
解决办法
20万
查看次数

元素在"for(... in ...)"循环中排序

Javascript中的"for ... in"循环是否按照声明的顺序循环遍历hashtables/elements?是否有一个浏览器没有按顺序执行?
我想要使​​用的对象将被声明一次,永远不会被修改.

假设我有:

var myObject = { A: "Hello", B: "World" };
Run Code Online (Sandbox Code Playgroud)

我进一步使用它们:

for (var item in myObject) alert(item + " : " + myObject[item]);
Run Code Online (Sandbox Code Playgroud)

在大多数体面的浏览器中,我可以期待'A:'你好''总是先来'B:'世界"吗?

javascript for-loop

196
推荐指数
5
解决办法
9万
查看次数

Javascript中for..in循环的迭代顺序

假设我有一个初始化的Javascript对象

var letters = {q:0, t:0, o:0, b:0, y:0, n:0, u:0, m:0, p:0, 
               w:0, a:0, d:0, k:0, v:0, c:0, z:0, l:0, j:0, 
               i:0, e:0, g:0, s:0, x:0, r:0, h:0, f:0};
Run Code Online (Sandbox Code Playgroud)

然后我想迭代这些对象的键

for(var letter in letters) {
    // code goes here
}
Run Code Online (Sandbox Code Playgroud)

在Firefox 3和Internet Explorer 8中,对象按照它们在对象声明(q,t,o,b,y等)中列出的顺序进行迭代.

我可以依靠吗?假设在迭代之前我没有以任何方式修改我的对象.它是ECMAScript标准的一部分吗?有谁知道哪些浏览器在声明的顺序中迭代?

javascript

18
推荐指数
1
解决办法
6669
查看次数

如何按照编写的顺序迭代javascript对象属性

我发现我的代码中存在一个错误,希望通过最少的重构努力来解决.Chrome和Opera浏览器中会出现此错误.问题:

var obj = {23:"AA",12:"BB"};
//iterating through obj's properties
for(i in obj)
  document.write("Key: "+i +" "+"Value: "+obj[i]);
Run Code Online (Sandbox Code Playgroud)

输出FF,IE键:23值:AA键:12值:BB

Opera和Chrome输出(错误)
键:12值BB
键:23值AA

我试图制作一个像这样的逆序对象

var obj1={"AA":23,"BB":12};
for(i in obj1)
  document.write("Key: "+obj[i] +" "+"Value: "+i);
Run Code Online (Sandbox Code Playgroud)

但是输出是一样的.有没有办法通过小改动为所有浏览器提供相同的行为?

javascript

14
推荐指数
1
解决办法
1万
查看次数

Chrome和可能的Opera自动排序对象属性

问题是:Chrome会自动对对象的属性进行排序.

如果我有一个像这样的对象:

var obj = {4: "first", 2: "second", 1: "third"};
Run Code Online (Sandbox Code Playgroud)

然后我下次做的时候:

for(var i in obj) {
    console.debug(obj[i]);
}
Run Code Online (Sandbox Code Playgroud)

我明白了:

third second first

但期望:

first second third

javascript

12
推荐指数
2
解决办法
2969
查看次数

标签 统计

javascript ×5

for-loop ×1

object ×1