Javascript Lodash-具有不同身份的差异
我有以下数组:Javascript Lodash-具有不同身份的差异,javascript,lodash,Javascript,Lodash,我有以下数组: [ { id: 1 }, { id: 2 }, { id: 3 }, { id: 4 } ] 我的应用程序每5秒接收一个新数组,我需要比较下一个数组之间的差异 因此,下一个数组是: [ { conversation_id: 1 }, { conversation_id: 2 }, { conversation_id: 4 } ] 考虑到身份是不同的。如何与上一个进行
[
{
id: 1
},
{
id: 2
},
{
id: 3
},
{
id: 4
}
]
我的应用程序每5秒接收一个新数组,我需要比较下一个数组之间的差异
因此,下一个数组是:
[
{
conversation_id: 1
},
{
conversation_id: 2
},
{
conversation_id: 4
}
]
考虑到身份是不同的。如何与上一个进行比较并获得包含排除项的数组
[
{
id: 3
}
]
我认为您可以混合使用javascript和lodash来解决这个问题。
var arrayList=[
{
身份证号码:1
},
{
身份证号码:2
},
{
身份证号码:3
},
{
身份证号码:4
}
];
变量conv_数组=[
{
对话编号:1
},
{
对话编号:2
},
{
对话编号:4
}
];
var itemsNotInArray=[];
arrayList.filter(函数(项){
if(!.find(conv_数组,{conversation_id:item.id})){
日志(“不在数组中”,项);
ItemsNotArray.push(项目);
}
});
log(“您期望的结果”,itemsNotInArray)代码>
我认为可以混合使用javascript和lodash来解决这个问题。
var arrayList=[
{
身份证号码:1
},
{
身份证号码:2
},
{
身份证号码:3
},
{
身份证号码:4
}
];
变量conv_数组=[
{
对话编号:1
},
{
对话编号:2
},
{
对话编号:4
}
];
var itemsNotInArray=[];
arrayList.filter(函数(项){
if(!.find(conv_数组,{conversation_id:item.id})){
日志(“不在数组中”,项);
ItemsNotArray.push(项目);
}
});
log(“您期望的结果”,itemsNotInArray)代码>
筛选第一个数组并比较每个值,直到找到缺少的id:
var数组1=[{
身份证号码:1
},
{
身份证号码:2
},
{
身份证号码:3
},
{
身份证号码:4
}
];
变量array2=[{
对话编号:1
},
{
对话编号:2
},
{
对话编号:4
}
];
var测试=阵列1.0过滤器(
conv=>!array2.find(
id=>id.conversation\u id==conv.id
)
);
console.log(test)
过滤第一个数组并比较每个值,直到找到缺少的id:
var数组1=[{
身份证号码:1
},
{
身份证号码:2
},
{
身份证号码:3
},
{
身份证号码:4
}
];
变量array2=[{
对话编号:1
},
{
对话编号:2
},
{
对话编号:4
}
];
var测试=阵列1.0过滤器(
conv=>!array2.find(
id=>id.conversation\u id==conv.id
)
);
console.log(test)
从中,differenceBy
的第三个参数是
[iteratee=..identity](函数)
:每个元素调用的iteratee
基于此,您可以使用
var current = [
{
id: 1
},
{
id: 2
},
{
id: 3
},
{
id: 4
}
];
及
然后
或使用箭头功能缩短:
var difference = _.differenceBy(current, next, (x) => x.id || x.conversation_id)
从中,differenceBy
的第三个参数是
[iteratee=..identity](函数)
:每个元素调用的iteratee
基于此,您可以使用
var current = [
{
id: 1
},
{
id: 2
},
{
id: 3
},
{
id: 4
}
];
及
然后
或使用箭头功能缩短:
var difference = _.differenceBy(current, next, (x) => x.id || x.conversation_id)
使用。
:
constprev=[{“id”:1},{“id”:2},{“id”:3},{“id”:4}]
const next=[{“对话id”:1},{“对话id”:2},{“对话id”:4}]
const diff=uu.differenceWith(上一个,下一个,({id},{conversation\u id})=>uu.eq(id,conversation\u id))
console.log(差异)
使用\u.differenceWith()
:
constprev=[{“id”:1},{“id”:2},{“id”:3},{“id”:4}]
const next=[{“对话id”:1},{“对话id”:2},{“对话id”:4}]
const diff=uu.differenceWith(上一个,下一个,({id},{conversation\u id})=>uu.eq(id,conversation\u id))
console.log(差异)
假设a
和b
是你的数组,带有简单的JS->a.filter(x=>!b.find(k=>k.conversation\u id==x.id))
假设a
和b
是你的数组,带有简单的JS->a.filter(x=>!b.find(k=>k.conversation\u id==x.id))