其他分享
首页 > 其他分享> > 封装一个函数用来对比原始数组与更新后的数组增加和删除了那些数据

封装一个函数用来对比原始数组与更新后的数组增加和删除了那些数据

作者:互联网

/**
 * 功能:对比两个纯数组之间的数据差异
 * @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);

 

标签:封装,删除,sourceData,add,let,数组,data,newData,delete
来源: https://www.cnblogs.com/lyt520/p/16358485.html