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_Javascript Objects - Fatal编程技术网

Javascript 映射未按正确顺序返回对象?

Javascript 映射未按正确顺序返回对象?,javascript,loops,javascript-objects,Javascript,Loops,Javascript Objects,我有一个函数,可以循环数组,并将键和值对设置为映射对象。然后调用另一个函数,将对象中的数字乘以2。当我返回Map对象时,我注意到对象中的数字现在是按数字顺序排列的。根据规则,它应该保留数组的原始顺序,但实际上不是。我做错了什么 var-manArray=[5,2,7,4]; 函数操作(arr){ var myMap=newmap(); for(设i=0;i

我有一个函数,可以循环数组,并将键和值对设置为映射对象。然后调用另一个函数,将对象中的数字乘以2。当我返回Map对象时,我注意到对象中的数字现在是按数字顺序排列的。根据规则,它应该保留数组的原始顺序,但实际上不是。我做错了什么

var-manArray=[5,2,7,4];
函数操作(arr){
var myMap=newmap();
for(设i=0;iconsole.log(操纵(manArray))JS中不保证对象键/属性顺序。对象本质上是无序的集合或属性(不同的JS实现可能具有不同的对象属性顺序)。如果您确实想保留对象顺序,您可以查看一个映射,它确实保证了顺序。

myMap[key]=value不是在地图中设置值的方式。这只是指定常规对象属性,就好像您根本没有使用贴图一样。使用以下命令:

myMap.set( key, value );
然后,如果在映射上迭代,则可以保证插入顺序

var-manArray=[5,2,7,4];
函数操作(arr){
var myMap=newmap();
for(设i=0;i}
为什么希望对象按特定顺序排列?对象键顺序不保证。这是事实。