是否可以将关联数组/ key 对数组按随机的 key 顺序排列。每当我添加一个新元素时,javascript 都会自动对键进行排序。
例如,
当我创建一个数组时
a[T1001] ="B"
a[T1005] = "A"
a[T1003] ="C"
稍后验证数组列表,我看到数组自动排序为:
a[T1001]
a[T1003]
a[T1005]
是否可以保留为数组分配值的相同顺序?我无法使用 Push 方法。它创建一个索引数组,并将单个对象添加为其值。
最佳答案
JavaScript 中的对象(这里的“数组”只是一个对象)没有您可以依赖的属性的固有顺序。
作为解决方法,您可以将键的顺序存储在单独的数组中:
var order = [];
a['T1001'] = "B";
order.push( 'T1001' );
a['T1005'] = "A";
order.push( 'T1005' );
a['T1003'] = "C";
order.push( 'T1003' );
然后遍历订单数组,就可以得到你需要的订单:
for( var i=0; i<order.length; i++ ) {
console.log( a[ order[i] ] );
}
编辑
从第一个列表中删除元素需要使用 indexOf
和 splice()
:
function delElement( arr, order, index ) {
// get the position of the element within the order
var position = order.indexOf( key );
// delete element from list
delete arr[ order[ pos ] ];
// remove from ordering array
order.splice( pos, 1 );
}
关于javascript - 关联数组/ key 对数组在 Javascript 中以随机的 key 顺序排列。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17444480/