在JavaScript中强制数组的顺序

时间:2014-02-06 22:57:56

标签: javascript

我无法通过我提供的顺序访问我的数组。无论我如何在数组中定位其键和值,数组都会不断重新排序。

我的意思的一个例子

var array = [];
array[1] = 'test';
array[2] = 'dddd';
array[3] = 'aaaa';
array[0] = 'good';

console.log(array)

在控制台中,我们留下了

[Object Array]
0: "good"
1: "test"
2: "dddd"
3: "aaaa"

重新排序,这不是我创建数组的方式。 我想访问数组我如何订购它,这将产生结果

[Object Array]
1: "test"
2: "dddd"
3: "aaaa"
0: "good"

我如何实现这一目标?

提前致谢。

3 个答案:

答案 0 :(得分:2)

只需按照您希望它显示的顺序创建数组。注意索引的顺序:

array[0] = 'test';
array[1] = 'dddd';
array[2] = 'aaaa';
array[3] = 'good';

或者使用push

array.push('test');
array.push('dddd');
array.push('aaaa');
array.push('good');

答案 1 :(得分:2)

您使用不按顺序的索引创建了数组,然后依次使用索引访问数组。 当然你会看到不同的订单。

如果您使用无序索引添加这些属性,则按照您添加它们的顺序访问这些属性没有任何符合规范的方法。你必须分别跟踪它。 E.g:

var array = [];
var order = [];
order.push(1);
array[1] = 'test';
order.push(2);
array[2] = 'dddd';
order.push(3);
array[3] = 'aaaa';
order.push(4);
array[0] = 'good';

var i; // You didn't have this, but you want it

for (i = 0; i < order.length; ++i) {
    alert(array[order[i]]);
}

当然,你可能会结合

order.push(x);
array[x] = y;

...进入一个功能。

答案 2 :(得分:0)

待办事项

var array = [];
array[0] = 'test';
array[1] = 'dddd';
array[2] = 'aaaa';
array[3] = 'good';