尝试实现节点js multimap时出现问题

时间:2018-06-16 22:27:04

标签: node.js multimap

我正在尝试使用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

如果我得到关于我在哪里做错的指针,我将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以设置条件来检查多值映射中是否已存在键值对

if(!mmap.has(path, columns[1]['value']){
   mmap.set(path, columns[1]['value']);
}