Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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_Arrays_Key Value - Fatal编程技术网

将Javascript中的数组/密钥对数组与密钥的随机顺序相关联。

将Javascript中的数组/密钥对数组与密钥的随机顺序相关联。,javascript,arrays,key-value,Javascript,Arrays,Key Value,是否可以将关联数组/密钥对数组按密钥的随机顺序排列。每当我添加新元素时,javascript都会自动对键进行排序 比如说, 当我创建一个数组作为 a[T1001] ="B" a[T1005] = "A" a[T1003] ="C" 之后验证了数组列表,我发现数组会自动排序为: a[T1001] a[T1003] a[T1005] 是否可以保留将值分配给数组的相同顺序?。我不能使用推送法。。它创建了一个索引数组,其中添加了单个对象作为其值。在我看来,就像您在使用对象一样。对象属性的排序永远无

是否可以将关联数组/密钥对数组按密钥的随机顺序排列。每当我添加新元素时,javascript都会自动对键进行排序

比如说,

当我创建一个数组作为

a[T1001] ="B"
a[T1005] = "A"
a[T1003] ="C"
之后验证了数组列表,我发现数组会自动排序为:

a[T1001]
a[T1003]
a[T1005] 

是否可以保留将值分配给数组的相同顺序?。我不能使用推送法。。它创建了一个索引数组,其中添加了单个对象作为其值。

在我看来,就像您在使用对象一样。对象属性的排序永远无法保证。我不认为InternetExplorer(至少旧版本)会对属性进行排序,但chrome默认会这样做

您的代码无效,如果属性不是数字,则应将其作为字符串。你必须使用一个对象

a = {};
a["T1001"] ="B"
a["T1005"] = "A"
a["T1003"] ="C"
如果要保留排序,可以使用两个数组来存储属性和值;如果坚持使用对象,则无法保证排序

两个阵列

a1 = []; a2 = []
a1[0] = "T1001"; a2[0] = "B";
a1[1] = "T1005"; a2[1] = "A";
a1[2] = "T1003"; a2[2] = "C"; 

编辑:除非我猜错了你的意思,T1001等是包含数字的变量。

在我看来,你好像在使用一个对象。对象属性的排序永远无法保证。我不认为InternetExplorer(至少旧版本)会对属性进行排序,但chrome默认会这样做

您的代码无效,如果属性不是数字,则应将其作为字符串。你必须使用一个对象

a = {};
a["T1001"] ="B"
a["T1005"] = "A"
a["T1003"] ="C"
如果要保留排序,可以使用两个数组来存储属性和值;如果坚持使用对象,则无法保证排序

两个阵列

a1 = []; a2 = []
a1[0] = "T1001"; a2[0] = "B";
a1[1] = "T1005"; a2[1] = "A";
a1[2] = "T1003"; a2[2] = "C"; 
编辑:除非我猜错了您的意思,T1001等是包含数字的变量。

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] ] );
}
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] ] );
}

T1001
等。变量是否包含数字?如果是这样的话,就有一个非常规则的索引数组。javascript中没有关联数组。对象属性的顺序未定义,因此不可靠。@Teemu。。是的,它包含数值..如我问题中的100110031005所示。@Yoshi,是的。我知道这一点。但是,我的要求是,我需要使用一个特定的键来处理每个元素。@Yve。。感谢您的更正。
T1001
等。变量是否包含数字?如果是这样的话,就有一个非常规则的索引数组。javascript中没有关联数组。对象属性的顺序未定义,因此不可靠。@Teemu。。是的,它包含数值..如我问题中的100110031005所示。@Yoshi,是的。我知道这一点。但是,我的要求是,我需要使用一个特定的键来处理每个元素。@Yve。。谢谢你的更正。谢谢Sirko的回复。我尝试使用的结果列表类似于关联的数组。例如使用“delete a[t10001]删除项目。这将从数组中删除该项目。当我使用推送时,我设置为索引的键将消失。感谢Sirko的回复。我尝试使用的结果列表类似于关联数组。例如..使用“delete a[t10001]删除项目”。这将从数组中删除该项。当我使用Push时,我设置为索引的键将消失。Ally,很抱歉代码中出现了错误。是的,关于变化,你是对的。。我认为你提供的解决方案值得尝试。将在短时间内回复结果。你好,Ally,谢谢你的建议。。。我用过它。。。但是有一点不同我添加了第一个数组本身的order数组部分。这有助于遍历数组,也确保列表顺序易于访问。-我创建了第一个数组,如下所示:var masterArray=new array();var masterArray.KeyOrder=新数组();然后,我将值列表存储在主数组中,每当需要循环时,我都使用子数组“KeyOrder”。Addl.Reference Ally,很抱歉代码中出现错误。是的,关于变化,你是对的。。我认为你提供的解决方案值得尝试。将在短时间内回复结果。你好,Ally,谢谢你的建议。。。我用过它。。。但是有一点不同我添加了第一个数组本身的order数组部分。这有助于遍历数组,也确保列表顺序易于访问。-我创建了第一个数组,如下所示:var masterArray=new array();var masterArray.KeyOrder=新数组();然后,我将值列表存储在主数组中,每当需要循环时,我都使用子数组“KeyOrder”。地址参考