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