当前位置: 首页 > news >正文

嘉兴哪里做网站跳转到手机网站代码

嘉兴哪里做网站,跳转到手机网站代码,高校文明校园建设专题网站,网站备案信息传在集合A和集合B中,属于集合A,同时也属于集合B的元素组成的集合,就是交集。 在A中所有不属于集合B元素,组合成集合,就是差集。 那么在平时的开发中,如何使用差集和交集来解决问题呢? 现在有这…

在集合A和集合B中,属于集合A,同时也属于集合B的元素组成的集合,就是交集

在A中所有不属于集合B元素,组合成集合,就是差集

那么在平时的开发中,如何使用差集和交集来解决问题呢?

现在有这样的场景,在一个表格编辑数据后,要把编辑前的数据和修改后的数据,汇总。

源数据为:

const arr1 = [{ name: 11, id: 1 }, { name: 21, id: 2 }, { name: 31, id: 3 }, { name: 41, id: 4 }, { name: 51, id: 5 }, { name: 61, id: 6 }];

在页面中表现为:

在这里插入图片描述

现在删除第一行数据,第二行的名字改为2109,第三行的名字改为3321;然后新增两行,分别为:71、81。

数据如下:

const arr2 = [{ name: 2109, id: 2 }, { name: 3321, id: 3 }, { name: 41, id: 4 }, { name: 51, id: 5 }, { name: 61, id: 6 }, { name: 71, id: null }, { name: 81, id: null }];

页面为:

在这里插入图片描述
由于是新增数据还没有提交保存,所以对应的序号,也就是ID为空。

最终想要的效果图下图所示:

在这里插入图片描述
需要在表格中体现那些数据是修改、删除、新增,哪些数据没有改变。

思路:

  1. 源数据是一个数组arr1;
  2. 修改后的数据也是一个数组arr2;
  3. 删除的数据,在数组arr1中有,数组arr2中没有;
  4. 修改的数据,在数组arr1和arr2中,都找对应的ID;
  5. 新增的数据,只出现在数组arr2中。

那么数组arr2与数组arr1的差集,就是新增的数据:

let add = arr2.filter(x => arr1.every(y => y.id != x.id))

数组arr1与数组arr2的差集,就是删除的数据:

let del = arr1.filter(x => arr2.every(y => y.id != x.id))

修改或者没有修改数据,就是数组arr1和数组arr2的交集:

// arr1、arr2的交集
let arr12Inter = arr1.filter(x => arr2.some(y => x.id === y.id))
let arr21Inter = arr2.filter(x => arr1.some(y => x.id === y.id))

最后一步,就是组合所有的差集、交集,汇总成新的数组:

for (let index = 0; index < arr12Inter.length; index++) {newArr.push({ oldData: arr21Inter[index], newData: arr12Inter[index] })
}del.forEach(item => newArr.push({ oldData: item, newData: null }))
add.forEach(item => newArr.push({ oldData: null, newData: item }))

完整代码:

const arr1 = [{ name: 11, id: 1 }, { name: 21, id: 2 }, { name: 31, id: 3 }, { name: 41, id: 4 }, { name: 51, id: 5 }, { name: 61, id: 6 }];const arr2 = [{ name: 2109, id: 2 }, { name: 3321, id: 3 }, { name: 41, id: 4 }, { name: 51, id: 5 }, { name: 61, id: 6 }, { name: 71, id: null }, { name: 81, id: null }];
let newArr = [];
// arr1——>arr2的差集:删除
let del = arr1.filter(x => arr2.every(y => y.id != x.id))// arr2——>arr1的差集:新增
let add = arr2.filter(x => arr1.every(y => y.id != x.id))// arr1、arr2的交集:修改
let arr12Inter = arr1.filter(x => arr2.some(y => x.id === y.id))
let arr21Inter = arr2.filter(x => arr1.some(y => x.id === y.id))console.log("arr1与arr2的差集:", del)
console.log("arr2与arr1的差集:", add)
console.log("交集", arr12Inter, arr21Inter)for (let index = 0; index < arr12Inter.length; index++) {newArr.push({ oldData: arr21Inter[index], newData: arr12Inter[index] })
}del.forEach(item => newArr.push({ oldData: item, newData: null }))
add.forEach(item => newArr.push({ oldData: null, newData: item }))console.log("汇总:", newArr)

在这里插入图片描述

使用交集、差集,仅仅是一种方式!

http://www.yayakq.cn/news/703205/

相关文章:

  • 广州致格广告有限公司网站app软件开发平台游戏
  • 拍卖网站模板下载宁波自助建站模板
  • 网站备案各种问题汇总成都住房和城乡建设局网站
  • 帮忙做网站免费建设网站设计页面
  • 网站专业优化公司单页面网站如何优化引流
  • 专业网站制作公司案例青岛建立网站电话
  • 织梦网站管理安装广告设计培训班学校有哪些
  • 美声广告网站建设外 网站 公司
  • 电脑怎样做轰炸网站自动化培训机构排名
  • 成都网站开发制作网站页面设计考虑要素
  • 免费字体网站百度手机app下载安装
  • 华强北做网站网页设计div布局
  • 贵阳开发网站建设企业邮箱查询
  • 广告公司网站模版跆拳道东莞网站建设
  • 教育机构的网站怎么做购物网站开发教程中文版
  • 建站服务网络公司哪个网站可以建设网站
  • 个人网站设计要求北京网页设计制作网站
  • 大庆企业网站建设公司chatgpt 网址
  • 深圳做网站的网络公产品网络推广深圳
  • 怎么做二维码微信扫后直到网站新浪网站用什么语言做的
  • 一个网站费用网站用什么系统
  • 卓越网站建设的优点哈尔滨自助建站模板
  • 网站如何做双链路深圳十大投资公司排名
  • 阳谷网站建设公司装配式建筑信息平台
  • 可以写代码的网站有哪些问题字节跳动员工人数2019
  • 网站开发应聘信息2021国内军事新闻大事件
  • 网站搜索引擎推广方案产品推广方案ppt
  • 莱芜网站建设怎么样哪里可以学到运营
  • 新站网站推广公司宝塔wordpress重定向
  • c 可以做网站公司建设网站申请报告范文