How can I to substract/delete/remove all coincident elements from an array list within another array list using .filter()
of ES6 javascript
?
Jquery's solution is also accepted, but any solution must be IE11+ and Chrome iOs compatible. Avoid using external libraries (except jquery). This is what I tried so far:
var originList = [
{"id":1,"name":"www"},
{"id":2, "name":"fff"},
{"id":3, "name":"ddd"},
{"id":4, "name":"aaaa"},
{"id":5, "name":"zzzz"},
{"id":6, "name":"Susane"},
{"id":7,"name":"yyy"}
];
var rest = [
{"id":1,"name":"www"},
{"id":2, "name":"fff"},
{"id":3, "name":"ddd"},
{"id":4, "name":"aaaa"},
{"id":5, "name":"zzzz"},
];
var newList = [];
var list = [];
$.each(originList, function(id,data){
list = originList.filter(function(obj,a){
return data.id !== obj.id ? obj : false;
});
});
$.each(originList, function(id,data){
$.each(rest, function(alli,allData){
if(data.id === allData.id) {
newList[id] = data;
}
});
});
console.log(list); //does not exclude id:6
console.log(newList); //this result is what I want
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>