比较两个对象数组以通过键查找不同的值number
假设旧对象包含
oldChoices = [{"number": 1, "text": "abc" }, {"number": 2, "text": "pqr" }]
新对象包括
newChoices = [{"number": 1, "text": "abc" }, {"number": 2, "text": "pqr" }, {"number": 3, "text": "xyz" }]
所以需要得到:
[{"number": 3, "text": "xyz" }]
笔记:1. 在文本框的按键事件上,值填充到 newChoices 数组中。
2. newChoices 也可以在一开始就获得价值。
尝试1:
var uniqueTemp = [];
$.each(oldChoices, function(x, e1){
$.each(newChoices, function(y, e2){
if(e1.number != e2.number){
uniqueTemp.push(e2);
}
});
})
尝试2:
var uniqueTemp = [];
oldChoices.filter(function(x){
if(newChoices.indexOf(x.number) === -1){
uniqueTemp.push(x);
return true;
}else{
return false;
}
});
预期的:
[{"number": 3, "text": "xyz" }]