我有一个循环遍历数组并将键和值对设置为Map对象的函数。然后,我调用另一个函数,该函数将对象中的数字乘以2。当我返回Map对象时,我注意到该对象中的数字现在按数字顺序排列。根据{{3}},它应该保留数组的原始顺序,但不是。我在做什么错了?
var manArray = [5, 2, 7, 4];
function manipulation(arr) {
var myMap = new Map();
for(let i = 0; i < arr.length; i++) {
var key = arr[i].toString();
var value = double(arr[i]);
myMap[key] = value;
}
return myMap;
}
function double(num) {
return num * 2;
}
console.log(manipulation(manArray));
答案 0 :(得分:1)
import numpy as np
import matplotlib.pylab as plt
x = np.arange(0,4)
y = [0.070, 0.026, 0.018, 0.012]
yerr= [0.003, 0.001, 0.001, 0.02]
不是您在Map中设置值的方式。这只是分配常规对象属性,就好像您根本没有使用过Map一样。使用这个:
myMap[key] = value;
然后,如果您遍历地图,则可以保证插入顺序。
myMap.set( key, value );
答案 1 :(得分:0)
在JS中不能保证对象键/属性的顺序。对象本质上是无序的集合或属性(JS的不同实现可能具有不同的对象属性顺序)。如果您确实想保留对象顺序,则可以查看一个保证顺序的地图。