/**
* 功能:对比两个纯数组之间的数据差异
* @param {source_data} sourceData 原始数据(必选)
* @param {String} newData 更新后的数据(必选)
* @return {Array} 返回的 add_data, delete_data,更新后的和原始数据对比,所增加的数据和删除的数据
*/
function getAddDelete({ sourceData, newData }) {
let add_data = [];
let delete_data = [];
if (!sourceData.length && !newData.length) return { add_data, delete_data };
for (let i = 0; i < sourceData.length; i++) {
if (!newData.includes(sourceData[i])) {
delete_data.push(sourceData[i]);
}
}
for (let i = 0; i < newData.length; i++) {
if (!sourceData.includes(newData[i])) {
add_data.push(newData[i]);
}
}
return { add_data, delete_data };
}
let source_data = [1, 2, 3, 4, 5, 6]; // 原始数据
let new_data = [2, 6, 8]; // 更新后的数据
let data = {
sourceData: source_data,
newData: new_data,
};
let target = getAddDelete(data)
/**
* {
* "add_data": [8],
* "delete_data": [1, 3, 4, 5]
* }
*
* 说明:对比后,发现相对与原始数据,新数据增加了数字:8,删除了数字:1, 3, 4, 5
*/
console.log(target);