假设我在地图中存储currentMin
每次迭代
StoreCurrentMin.set(StoreIandJ[counter],currentMin);
其中StoreIandJ[counter]
是一个数组,用作键并在迭代时更改。
后来我正在做这个
var values_array = Array.from( StoreCurrentMin.values() );
形成地图中所有值的数组。
现在我的问题是,此地图中的值可能是重复的,比如它们是2,3,4,2,2
我如何获取2
的所有实例的密钥
答案 0 :(得分:1)
实际上执行.values()
和.forEach
已经足够了,之前没有意识到。但感谢大家的回复。
var values_array = Array.from( StoreCurrentMin.values() );
var min=Math.min.apply(Math,values_array);
StoreCurrentMin.forEach(function(value, key) {
if (value===min){
console.log (key);
}
});
答案 1 :(得分:0)
您的值将以数组数组的形式返回。您的密钥将返回每个阵列的零索引。但是,只要值已经散列,您就需要进入数组。更重要的是,您需要将值设置为对象数组,以便在不存在哈希时能够将其推入。否则,您将覆盖该值并丢失其数量。
var num = [50, 2, 20, 4, 20, 6, 2, 3, 7, 8, 9];
var mapped = new Map();
for (let n of num) {
var values = mapped.get(n)
if (values) values.push(n);
else mapped.set(n, [n]);
}
var arr = Array.from(mapped);
var key = arr.filter(x => x[0] === 2)
console.log(key);