我使用hashmap来存储map的键值对。如果他们是使用NOdejs做同样的替代方法,请告诉我。
var HashMap=require('hashmap');
var map=new HashMap();
map.set("amit",[1,2]);
map.set("amit",[3,4]);
console.log(map.get("amit"));
在控制台上打印[3,4],我想要[1,2,3,4]。 我怎么会接近这个。 如果值变量中的值重复,那么我还想增加对应于相同键的值的计数。
答案 0 :(得分:1)
每次在该密钥上调用amit
时,您都会覆盖set
密钥值。除非hashmap
中有一些特定的API支持,否则最好的选择是在每个set
调用中连接上一个值。
考虑:
var HashMap = require("hashmap")
var map = new HashMap()
map.set('amit', [1,2])
// Concat previous value with [3, 4]
map.set('amit', map.get('amit').concat([3,4]))
console.log(map.get('amit'))
// [1, 2, 3, 4]
你也可以为此做一个抽象。以下是一个简单的示例,您很可能希望在实际用例中进一步扩展它。
// concatSet('foo', [1, 2])
// concatSet('foo', [3, 4])
// console.log(map.get('foo')) => [1, 2, 3, 4]
function concatSet(key, value) {
// empty array if not exists
var prevValue = map.get(key) || []
return map.set(key, prevValue.concat(value))
}
答案 1 :(得分:0)
你必须循环地图。
map.set(1, "test 1");
map.set(2, "test 2");
map.set(3, "test 3");
map.forEach(function(value, key) {
console.log(key + " : " + value);
});