[英]How to compare two array objects' particular string?
我对如何比较两个数组对象的特定值如何将被忽略的值作为一个数组感到困惑。
var Arr1 = [
{
jobId:"j1"
},
{
jobId:"j2"
},
{
jobId:"j3"
},
{
jobId:"j4"
},
]
var Arr2 = [
{
jobId:"j1"
},
{
jobId:"j2"
},
]
我想要这样的结果...
//neglected values
[
{
jobId:"j3"
},
{
jobId:"j4"
},
]
将第一个数组的元素过滤( Array#filter
) Array#filter
为第二个数组中没有( !
)一些( Array#some
)匹配作业ID的元素。
Arr1.filter(arr1Elt => !Arr2.some(arr2Elt => arr2Elt.jobId === arr1Elt.jobId))
使用逐行注释样式:
Arr1 // From Arr1,
.filter( // keep
arr1Elt => // elements for which
! // it is not the case that
Arr2 // Arr2 has
.some( // some
arr2Elt => // elements for which
arr2Elt.jobId // the job ID
=== // is equal to
arr1Elt.jobId // the job ID from the first array.
)
)
您可以使用lodash的_.differenceBy()
查找Arr1
缺少的Arr2
的项目。
var Arr1 = [{"jobId":"j1"},{"jobId":"j2"},{"jobId":"j3"},{"jobId":"j4"}]; var Arr2 = [{"jobId":"j1"},{"jobId":"j2"}]; // find items that are in Arr1, but not in Arr2, compare items by their jobId var result = _.differenceBy(Arr1, Arr2 , 'jobId'); console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.3/lodash.min.js"></script>
您可以使用Array.prototype.filter
上ARR1和检查,如果它的任何条目的使用是ARR2 Array.prototype.some
-见下面的演示:
var Arr1=[{jobId:"j1"},{jobId:"j2"},{jobId:"j3"},{jobId:"j4"}]; var Arr2=[{jobId:"j1"},{jobId:"j2"}]; var result = Arr1.filter(function(e){ return !Arr2.some(function(k){ return k.jobId === e.jobId; }); }); console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.