JavaScript对象有id和all两个属性,
问题1: 找到数组a中元素与数组b中元素id属性不同的元素
1 function f1(a,b) {
2 return _.filter(a, function(ai){
3 var bio = _.find(b, function(bi){
4 return ai.id == bi.id;
5 });
6 return !bio
7 });
8 }
问题2: 找到数组a中元素的all属性为false的元素
1 function f2(a) {
2 return _.filter(a, function(ai) {
3 return !ai.all;
4 });
5 }
问题3: 找到数组a中元素与数组b中元素id属性不同,且对应b中all属性为false的元素
1 function f(a,b) {
2 return _.filter(a, function(ai){
3 var bio = _.find(b, function(bi){
4 return ai.id == bi.id;
5 });
6 if(!bio) {
7 return true;
8 }
9 return !bio.all;
10 });
11 }
给定a、b、c是三个不同的对象数组,
1 a=[{id:1, all:true}, {id:2, all:true}, {id:3, all:true}];
2 b=[{id:1, all:true}, {id:4, all:true}, {id:5, all:true}];
3 c=[{id:1, all:false}, {id:4, all:true}, {id:5, all:true}];
结果如下:
1 f1(a,b) = [{id:2, all:true}, {id:3, all:true}]
2 f2(b) = []
3 f2(c) = [{id:1, all:false}]
4 f(a, b) = [{id:1, all:true}, {id:2, all:true}, {id:3, all:true}]
5 f(a, c) = [{id:2, all:true}, {id:3, all:true}]
来源:https://www.cnblogs.com/coder211/p/10702531.html