我正在尝试使用Multimap,因为我可能对同一个键有不同的值。但是,当Multimap中已存在键值对时,我不想进入它。 但遗憾的是,当我使用MultiMap时,它会在multimap中为相同的键值对创建新条目。如果我错过了什么,请告诉我?代码段如下 -
//declared MultiMap -
var Multimap = require('multimap');
var mmap = new Multimap();
//在控制台上运行命令以将多重映射包含到项目中:
npm install multimap --save
//使用set方法将数据推送到multimap
mmap.set(path, columns[1]['value']);
//检查多图的大小
mmap.length
//在multimap中打印每个条目
mmap.forEachEntry(function (entry, key) {
console.log(key + "----" + entry);
});
// OUTPUT for key ---- value in multimap
product_tree,SBG,QuickBooks,39.0,R2----R2
product_tree,SBG,QuickBooks,39.0,R1----R1
product_tree,SBG,QuickBooks,28.0----28.0,28.0,28.0,28.0,28.0,28.0,28.0
product_tree,SBG,QuickBooks,28.0,R1----R1,R1
product_tree,SBG,QuickBooks,28.0,R7----R7
product_tree,SBG,QuickBooks,28.0,R6----R6
product_tree,SBG,QuickBooks,28.0,R5----R5
product_tree,SBG,QuickBooks,28.0,R4----R4
product_tree,SBG,QuickBooks,28.0,R3----R3
product_tree,SBG,QuickBooks,27.0----27.0,27.0,27.0,27.0,27.0,27.0,27.0,27.0,27.0,27.0
product_tree,SBG,QuickBooks,27.0,R1----R1,R1
//键的预期输出----值
product_tree,SBG,QuickBooks,39.0,R2----R2
product_tree,SBG,QuickBooks,39.0,R1----R1
product_tree,SBG,QuickBooks,28.0----28.0
product_tree,SBG,QuickBooks,28.0,R1----R1
product_tree,SBG,QuickBooks,28.0,R7----R7
product_tree,SBG,QuickBooks,28.0,R6----R6
product_tree,SBG,QuickBooks,28.0,R5----R5
product_tree,SBG,QuickBooks,28.0,R4----R4
product_tree,SBG,QuickBooks,28.0,R3----R3
product_tree,SBG,QuickBooks,27.0----27.0
product_tree,SBG,QuickBooks,27.0,R1----R1
如果我得到关于我在哪里做错的指针,我将不胜感激。
提前致谢。
答案 0 :(得分:1)
您可以设置条件来检查多值映射中是否已存在键值对
if(!mmap.has(path, columns[1]['value']){
mmap.set(path, columns[1]['value']);
}