Javascript将重复值映射到键

时间:2017-06-13 16:01:44

标签: javascript

假设我在地图中存储currentMin每次迭代

StoreCurrentMin.set(StoreIandJ[counter],currentMin);

其中StoreIandJ[counter]是一个数组,用作键并在迭代时更改。

后来我正在做这个

var values_array = Array.from( StoreCurrentMin.values() );

形成地图中所有值的数组。

现在我的问题是,此地图中的值可能是重复的,比如它们是2,3,4,2,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);