Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象多个循环,相同顺序?_Javascript_Loops_Object - Fatal编程技术网

Javascript对象多个循环,相同顺序?

Javascript对象多个循环,相同顺序?,javascript,loops,object,Javascript,Loops,Object,我知道,并不是每个浏览器都会按照循环时添加的顺序输出对象项。 但是如果我第二次循环一个对象,我能确定它将以与之前相同的顺序输出项目吗?记住,它不能以添加项目时的顺序输出 但是如果我第二次循环一个对象,我能确定它将以与以前相同的顺序输出项目吗 如果以任何方式修改对象,则不会。即使您不这样做,您也依赖于未记录的行为,因为没有关于访问属性的顺序的保证,包括不保证以后会以相同的顺序访问属性 如果您需要可靠的东西,请考虑使用对象.KEX< /COD>和排序: Object.keys(theObject).

我知道,并不是每个浏览器都会按照循环时添加的顺序输出对象项。 但是如果我第二次循环一个对象,我能确定它将以与之前相同的顺序输出项目吗?记住,它不能以添加项目时的顺序输出

但是如果我第二次循环一个对象,我能确定它将以与以前相同的顺序输出项目吗

如果以任何方式修改对象,则不会。即使您不这样做,您也依赖于未记录的行为,因为没有关于访问属性的顺序的保证,包括不保证以后会以相同的顺序访问属性

如果您需要可靠的东西,请考虑使用<代码>对象.KEX< /COD>和<代码>排序:

Object.keys(theObject).sort().forEach(function(key) {
    // The order here will reliably be alphabetical
});
请注意,
Object.keys
在所有现代浏览器中都有,但在像IE8这样的旧浏览器中没有。不过,它可以很容易地进行多填充

实例:

var obj1={};
obj1.a=1;
obj1.b=2;
obj1.c=3;
Object.keys(obj1).sort().forEach(函数(键){
log(key);
});
var obj2={};
obj2.c=3;
obj2.b=2;
obj2.a=1;
Object.keys(obj2).sort().forEach(函数(键){
log(key);
});

但是如果我第二次循环一个对象,我能确定它将以与以前相同的顺序输出项目吗

如果以任何方式修改对象,则不会。即使您不这样做,您也依赖于未记录的行为,因为没有关于访问属性的顺序的保证,包括不保证以后会以相同的顺序访问属性

如果您需要可靠的东西,请考虑使用<代码>对象.KEX< /COD>和<代码>排序:

Object.keys(theObject).sort().forEach(function(key) {
    // The order here will reliably be alphabetical
});
请注意,
Object.keys
在所有现代浏览器中都有,但在像IE8这样的旧浏览器中没有。不过,它可以很容易地进行多填充

实例:

var obj1={};
obj1.a=1;
obj1.b=2;
obj1.c=3;
Object.keys(obj1).sort().forEach(函数(键){
log(key);
});
var obj2={};
obj2.c=3;
obj2.b=2;
obj2.a=1;
Object.keys(obj2).sort().forEach(函数(键){
log(key);
});

但是如果我第二次循环一个对象,我能确定它将以与以前相同的顺序输出项目吗

如果以任何方式修改对象,则不会。即使您不这样做,您也依赖于未记录的行为,因为没有关于访问属性的顺序的保证,包括不保证以后会以相同的顺序访问属性

如果您需要可靠的东西,请考虑使用<代码>对象.KEX< /COD>和<代码>排序:

Object.keys(theObject).sort().forEach(function(key) {
    // The order here will reliably be alphabetical
});
请注意,
Object.keys
在所有现代浏览器中都有,但在像IE8这样的旧浏览器中没有。不过,它可以很容易地进行多填充

实例:

var obj1={};
obj1.a=1;
obj1.b=2;
obj1.c=3;
Object.keys(obj1).sort().forEach(函数(键){
log(key);
});
var obj2={};
obj2.c=3;
obj2.b=2;
obj2.a=1;
Object.keys(obj2).sort().forEach(函数(键){
log(key);
});

但是如果我第二次循环一个对象,我能确定它将以与以前相同的顺序输出项目吗

如果以任何方式修改对象,则不会。即使您不这样做,您也依赖于未记录的行为,因为没有关于访问属性的顺序的保证,包括不保证以后会以相同的顺序访问属性

如果您需要可靠的东西,请考虑使用<代码>对象.KEX< /COD>和<代码>排序:

Object.keys(theObject).sort().forEach(function(key) {
    // The order here will reliably be alphabetical
});
请注意,
Object.keys
在所有现代浏览器中都有,但在像IE8这样的旧浏览器中没有。不过,它可以很容易地进行多填充

实例:

var obj1={};
obj1.a=1;
obj1.b=2;
obj1.c=3;
Object.keys(obj1).sort().forEach(函数(键){
log(key);
});
var obj2={};
obj2.c=3;
obj2.b=2;
obj2.a=1;
Object.keys(obj2).sort().forEach(函数(键){
log(key);
});

不确定,我认为它会,但如果您使用排序键数组,则可以确保它会这样做:

var keys = Object.keys(myObject).sort();

keys.forEach(function (key) {
  // Access the value
  myObject[key]
});

不确定,我认为它会,但如果您使用排序键数组,您可以确保它会这样做:

var keys = Object.keys(myObject).sort();

keys.forEach(function (key) {
  // Access the value
  myObject[key]
});

不确定,我认为它会,但如果您使用排序键数组,您可以确保它会这样做:

var keys = Object.keys(myObject).sort();

keys.forEach(function (key) {
  // Access the value
  myObject[key]
});

不确定,我认为它会,但如果您使用排序键数组,您可以确保它会这样做:

var keys = Object.keys(myObject).sort();

keys.forEach(function (key) {
  // Access the value
  myObject[key]
});

你确定你的陈述吗?并非每个浏览器都会按照循环时添加的顺序输出对象项through@halafi:无法保证
for in
迭代属性名的顺序。您确定您的声明吗?并非每个浏览器都会按照循环时添加的顺序输出对象项through@halafi:无法保证
for in
迭代属性名的顺序。您确定您的声明吗?并非每个浏览器都会按照循环时添加的顺序输出对象项through@halafi:无法保证
for in
迭代属性名的顺序。您确定您的声明吗?并非每个浏览器都会按照循环时添加的顺序输出对象项through@halafi:对于in
中的
for迭代属性名的顺序没有任何保证。好的,我想我将使用类似的方法来确保正确的项目顺序。谢谢好吧,我想我会用这样的方法来确保正确的物品顺序。谢谢好吧,我想我会用这样的方法来确保正确的物品顺序。谢谢好吧,我想我会用这样的方法来确保正确的物品顺序。谢谢