在javascript/nodejs中深入比较两个对象的最快方法是什么

在javascript/nodejs中深入比较两个对象的最快方法是什么,javascript,node.js,json,Javascript,Node.js,Json,我在JSON中有两个大对象,我正在使用fs加载它,解析它并将其转换为MAP 让dataPin=fs.readFileSync('pin.json'); 让dataTotal=fs.readFileSync('total.json'); 设t=JSON.parse(dataTotal); 设p=JSON.parse(dataPin); 设Map1=newmap() for(输入t){ 让key=t[输入] Map1.set(键、条目) } 设Map2=newmap() for(让输入在p中){ 让

我在JSON中有两个大对象,我正在使用fs加载它,解析它并将其转换为MAP

让dataPin=fs.readFileSync('pin.json');
让dataTotal=fs.readFileSync('total.json');
设t=JSON.parse(dataTotal);
设p=JSON.parse(dataPin);
设Map1=newmap()
for(输入t){
让key=t[输入]
Map1.set(键、条目)
}
设Map2=newmap()
for(让输入在p中){
让key=p[输入]
Map2.set(键、条目)
}
而不是使用两个foreach。我必须将所有值相互比较,并检查其中是否包含任何值

Map1.forEach((i1,p)=>{
  Map2.forEach((i2,t)=>{

    if(t.eventStart==p.timestamp && ( p.home.includes(t.home) || t.home.includes(p.home) || p.away.includes(t.away) || t.away.includes(p.away) )){
   // than do some stuff
 }
 });
});

这个脚本需要大约10秒的时间才能用两个4mb的JSON执行,我想找到更快的方法,有没有?我正在使用node.js

json示例

[
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“排列”,
“奇数”:1.5424,
“选择”:“离开”,
“点”:1.5,
“期间”:0,
“支出”:“1.497”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“排列”,
“奇数”:2.8437,
“选择”:“主页”,
“要点”:-1.5,
“期间”:0,
“支出”:“2.760”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“排列”,
“奇数”:1.6755,
“选择”:“离开”,
“点数”:1.25,
“期间”:0,
“支出”:“1.628”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“排列”,
“奇数”:2.4803,
“选择”:“主页”,
“要点”:-1.25,
“期间”:0,
“支出”:“2.410”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“排列”,
“奇数”:1.9,
“选择”:“离开”,
"要点":一,,
“期间”:0,
“支出”:“1.854”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“排列”,
“奇数”:2.1111,
“选择”:“主页”,
“要点”:-1,
“期间”:0,
“支出”:“2.060”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“排列”,
“奇数”:2.2309,
“选择”:“离开”,
“点数”:0.75,
“期间”:0,
“支出”:“2.170”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“排列”,
“奇数”:1.8124,
“选择”:“主页”,
“点数”:-0.75,
“期间”:0,
“支出”:“1.763”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“排列”,
“奇数”:2.5611,
“选择”:“离开”,
“点数”:0.5,
“期间”:0,
“支出”:“2.490”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“排列”,
“奇数”:1.6406,
“选择”:“主页”,
“点数”:-0.5,
“期间”:0,
“支出”:“1.595”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“总计”,
“奇数”:1.2069,
“选择”:“在下面”,
“要点”:4.5,
“期间”:0,
“支出”:“1.165”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“总计”,
“奇数”:5.8326,
“选择”:“结束”,
“要点”:4.5,
“期间”:0,
“支出”:“5.630”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“总计”,
“奇数”:1.4911,
“选择”:“在下面”,
“要点”:3.5,
“期间”:0,
“支出”:“1.434”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“总计”,
“奇数”:3.0363,
“选择”:“结束”,
“要点”:3.5,
“期间”:0,
“支出”:“2.920”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,
“事件名称”:“华沙-克拉科夫军团”,
“类型”:“总计”,
“奇数”:1.5889,
“选择”:“在下面”,
“点数”:3.25,
“期间”:0,
“支出”:“1.537”
},
{
“家”:“华沙军团”,
“客场”:“克拉科夫”,
“运动ID”:29,
“时间戳”:1602267300000,
“事件ID”:1186957014,