我是 JavaScript 新手,在使用数组时遇到问题,我希望数组按照我显式编写的方式排序,而不是 JavaScript 决定它想要的方式。
如果我们有一个数组
var array = {
0: 'zero',
4: 'four',
2: 'two'
};
当我选择在控制台中显示它或迭代它时,它会像这样重新排序
array = {
0: 'zero',
2: 'two',
4: 'four'
};
到目前为止,我已经尝试了 2 个循环,即 for 循环,以及带有 in 语句的 for 循环。
两者都按照我假设的方式工作,因为它们使用按键并向上/向下工作,使我指定的顺序绝对没有用。
我如何按顺序编写/打印/使用我的数组,在其他语言(例如 PHP)中,它就像
$array = array(
0 => 'zero',
4 => 'four',
2 => 'two'
);
foreach($array as $key => $value)
echo $key ."\n";
这将输出
0
4
2
提前致谢。
你正在使用一个对象{}
,不是数组[]
。对象没有明确的顺序,而数组则有。这就是你遇到问题的原因。改变你的{}
to []
你会没事的。您甚至可以使用对象数组。
var array = [
{0: 'zero'},
{4: 'four'},
{2: 'two'}
];
像这样循环
for(var i = 0; i < array.length; i++){
console.log(array[i]);
}
给我们正常的订单。
Object {0: "zero"}
Object {4: "four"}
Object {2: "two"}
另一个编辑:问题是您试图拥有一个像对象一样具有属性和值的数组,而不使用对象 {property: value} - 这实际上不能用数组来完成。要像您想要的那样循环遍历数组,就像这样简单
var arr = [1,2,3]
and
for(var i = 0; i < arr.length; i++){
console.log(i) //1,2,3
}
但问题是,如上所述,您想要更复杂的数组,而您根本无法做到。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)