这是主要的json列表
allData=
{
"searchList": [{
"vaccinationId": 1,
"vaccinationName": "vacc 1",
"vaccinationNameAr": null
}, {
"vaccinationId": 2,
"vaccinationName": "vacc 2",
"vaccinationNameAr": null
}, {
"vaccinationId": 3,
"vaccinationName": "vacc 3",
"vaccinationNameAr": null
}, {
"vaccinationId": 4,
"vaccinationName": "vacc 4",
"vaccinationNameAr": null
}, {
"vaccinationId": 5,
"vaccinationName": "vacc 5",
"vaccinationNameAr": null
}, {
"vaccinationId": 6,
"vaccinationName": "vacc 6",
"vaccinationNameAr": null
}]
}
这是现有的json列表
alreadyExist = {
"searchList": [{
"vaccinationId": 2,
"vaccinationName": "vacc 2",
"vaccinationNameAr": null,
"defaultYn": null
}, {
"vaccinationId": 5,
"vaccinationName": "vacc 5",
"vaccinationNameAr": null,
"defaultYn": null
}]
}
必须从主json列表中删除现有数据,因此结果将是
allData = {
"result": [{
"vaccinationId": 1,
"vaccinationName": "vacc 1",
"vaccinationNameAr": null
}, {
"vaccinationId": 3,
"vaccinationName": "vacc 3",
"vaccinationNameAr": null
}, {
"vaccinationId": 4,
"vaccinationName": "vacc 4",
"vaccinationNameAr": null
}, {
"vaccinationId": 6,
"vaccinationName": "vacc 6",
"vaccinationNameAr": null
}]
}
如何通过删除现有数据来获得新的所有数据列表。
答案 0 :(得分:1)
您可以使用forEach
和map
alreadyExist.searchList.forEach(function(existInfo) {
var index = allData.searchList.map(function(e) { return e.vaccinationId; }).indexOf(existInfo.vaccinationId);
if(index != -1) {
allData.searchList.splice(index, 1);
}
})
答案 1 :(得分:0)
您可以将Lodash用于此目的
allData.searchList = _.differenceBy(allData.searchList, alreadyExist.searchList, 'vaccinationId');