位置: IT常识 - 正文

js去掉两个数组相同的元素、js删除数组中某一个对象、js快速查找数组中重复项下标(js去掉数组中的空字符串)

编辑:rootadmin
js去掉两个数组相同的元素、js删除数组中某一个对象、js快速查找数组中重复项下标 一、js去掉两个数组相同的元素

推荐整理分享js去掉两个数组相同的元素、js删除数组中某一个对象、js快速查找数组中重复项下标(js去掉数组中的空字符串),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js去掉两个数组的重复值,js去掉两个数组的一个值,js数组删除另一个数组,js数组删除另一个数组,js去除数组,js去掉两个数组的重复值,js去掉两个数组的一个值,js去掉两个数组的一个值,内容如对您有帮助,希望把文章链接给更多的朋友!

注意:这里并非是数组去重,数组去重是去掉一个数组中相同的元素,这里是比较两个数组,过滤掉二者相同的,留下不同的。

通过 some() 在对方数组里面查找相同元素,再利用filter() 过滤掉当前数组里与对方数组相同的元素。

const arr1 = [1, 2, 3, 56]const arr2 = [1, 2, 3, 780]const res = arr2.filter(item1 => !arr1.some(item2 => item2 === item1))console.log(res); // [780]arr2 与 arr1相同的元素有 1,2,3 ,res的结果就是 780const res2 = arr1.filter(item1 => !arr2.some(item2 => item2 === item1))console.log(res2); // [56]如果是数组对象(同上,查找对象 id 属性) let arr1 = [ {id:1,name:'小明',age:18}, {id:2,name:'小红',age:16}, {id:4,name:'小紫',age:22}, {id:5,name:'小绿',age:20}, ] let arr2 =[ {id:2,sex:'女'}, {id:5,sex:'男'}, ]let newArr = arr1.filter((item) => !arr2.some((ele) => ele.id === item.id));

打印结果:

还可利用 includeslet getId = arr2.map(item=>item.id)let newArr2 = arr1.filter(item=>!getId.includes(item.id))js去掉两个数组相同的元素、js删除数组中某一个对象、js快速查找数组中重复项下标(js去掉数组中的空字符串)

打印结果:

二、js删除数组中某一个对象let arr1 = [ {id:1,name:'小明',age:18}, {id:2,name:'小红',age:16}, {id:4,name:'小紫',age:22}, {id:5,name:'小绿',age:20}, ] //假设 去掉name为小明的 这条数据 arr.splice(arr.indexOf(arr.find((e) => { return e.name=== "小明"; })), 1);

参考:https://blog.csdn.net/weixin_43743175/article/details/125257773

三、js快速查找数组中重复项下标var ARR = [1,2,3,4,5,1,2];var rep = [];ARR.forEach((item,index)=>{if(ARR.indexOf(item)!=index){rep.push(ARR.indexOf(item),index)}})

打印结果: 参考:https://blog.csdn.net/smz8023/article/details/86164751

例子:

假如后台返回了个这样的简单数据:

list: [ { totalNum: 1000, touchNum: 300, kpiName: '浏览量', itemStyleColor: ['#4CA4EC', '#B6D9F6'] }, { totalNum: 2000, touchNum: 600, kpiName: '任务领取个数', itemStyleColor: ['#624cec', '#b6bbf6'] } { totalNum: 3232, touchNum: 800, kpiName: '浏览量', itemStyleColor: ['#4CA4EC', '#B6D9F6'] } ]

而前端需要下面这样的数据结构,后端不好处理,让前端处理

list: [ { chartList: [ { totalNum: 1000, touchNum: 300, kpiName: '浏览量', itemStyleColor: ['#4CA4EC', '#B6D9F6'] }, { totalNum: 2000, touchNum: 600, kpiName: '任务领取个数', itemStyleColor: ['#624cec', '#b6bbf6'] } ], groupName: '寿险公司', groupId: 'gruop1' }, { chartList: [{ totalNum: 3232, touchNum: 800, kpiName: '浏览量', itemStyleColor: ['#4CA4EC', '#B6D9F6'] }], groupName: '电商公司', groupId: 'group2' }],

思路:根据某种规律,先拆分数据,采用 总-分-总 的模式,遇到难解决的数据分类拆分-最后合并。

参考实现:

/** * @Description: 机构数据整理 * @param {*Array} list 目标数据 * @return {*Array} 最终数据 */ matchFun(list) { const typeColor1 = ['#624cec', '#b6bbf6'] const typeColor2 = ['#4CA4EC', '#B6D9F6'] let arr1 = [] //转发 let arr2 = [] //浏览 let chartObj let newList = [] list.forEach((item, index) => { if (item.type == 1) { arr1.push(item) } else if (item.type == 2) { arr2.push(item) } }) for (let index = 0; index < arr1.length; index++) { chartObj = { chartList: [] } const element1 = arr1[index] chartObj.groupName = element1.groupName chartObj.groupId = element1.groupId for (let j = 0; j < arr2.length; j++) { const element2 = arr2[j] if (element1.groupId === element2.groupId) { chartObj.chartList[0] = element2 chartObj.chartList[1] = element1 } } newList.push(chartObj) newList.forEach((item) => { item.chartList.forEach((itm) => { itm.itemStyleColor = itm.type == '1' ? typeColor1 : typeColor2 }) }) newList = newList.filter((item) => item.chartList.length > 0) } /处理单个图表数据// let arrSet1 = [] //去重后的单个指标图表 let arrSet2 = [] arrSet1 = arr1.filter((item) => !arr2.some((ele) => ele.groupId == item.groupId)) arrSet2 = arr2.filter((item) => !arr1.some((ele) => ele.groupId == item.groupId)) arrSet1.forEach((item) => { let chartList = [{}] item.chartList = chartList item.chartList[0] = { itemStyleColor: item.type == '1' ? typeColor1 : typeColor2, checkId: item.checkId, groupId: item.groupId, type: item.type, total: item.total, num: item.num } }) arrSet2.forEach((item) => { let chartList = [{}] item.chartList = chartList item.chartList[0] = { itemStyleColor: item.type == '1' ? typeColor1 : typeColor2, checkId: item.checkId, groupId: item.groupId, type: item.type, total: item.total, num: item.num } }) // 最后合并二者 newList = [...newList, ...arrSet1, ...arrSet2] return newList }
本文链接地址:https://www.jiuchutong.com/zhishi/298786.html 转载请保留说明!

上一篇:Openlayers 快速上手教程(openlayers6教程)

下一篇:目标检测--边框回归损失函数SIoU原理详解及代码实现(目标检测标注框的规则)

  • qq删好友情侣空间会解除吗(qq删好友情侣空间还能回来啦)

    qq删好友情侣空间会解除吗(qq删好友情侣空间还能回来啦)

  • 怎样在抖音上卖东西(怎样在抖音上卖货)

    怎样在抖音上卖东西(怎样在抖音上卖货)

  • 惠普启动u盘按什么键(惠普启动u盘按键在哪)

    惠普启动u盘按什么键(惠普启动u盘按键在哪)

  • qq里sgr是什么意思(serqq是什么)

    qq里sgr是什么意思(serqq是什么)

  • ota支持是什么意思(ota有没有用)

    ota支持是什么意思(ota有没有用)

  • 拉杆音响插u盘没反应(拉杆音响插u盘没声音)

    拉杆音响插u盘没反应(拉杆音响插u盘没声音)

  • 微信文档过期了如何免费恢复(微信文档过期了怎么恢复正常)

    微信文档过期了如何免费恢复(微信文档过期了怎么恢复正常)

  • 电脑摔了一下屏幕花了(电脑摔了一下屏幕黑了一个角)

    电脑摔了一下屏幕花了(电脑摔了一下屏幕黑了一个角)

  • 钉钉视频会议能投屏到电视上吗(钉钉视频会议能看到每个人吗)

    钉钉视频会议能投屏到电视上吗(钉钉视频会议能看到每个人吗)

  • 红米8和红米8pro的区别(红米8和红米9哪一款手机好)

    红米8和红米8pro的区别(红米8和红米9哪一款手机好)

  • 华为手机出现曝光怎么办(华为手机出现曝光已锁定怎么解除)

    华为手机出现曝光怎么办(华为手机出现曝光已锁定怎么解除)

  • vivo手机浮屏怎么设置(vivo手机浮屏怎么弄出来)

    vivo手机浮屏怎么设置(vivo手机浮屏怎么弄出来)

  • 台式电脑网卡驱动异常连不上网怎么解决(台式电脑网卡驱动异常怎么修复)

    台式电脑网卡驱动异常连不上网怎么解决(台式电脑网卡驱动异常怎么修复)

  • word批量修改英文字体(word怎么批量替换英文)

    word批量修改英文字体(word怎么批量替换英文)

  • 电子计算机off是什么意思(计算机的off)

    电子计算机off是什么意思(计算机的off)

  • 哪些手机有3d touch功能(哪些手机有nfc功能)

    哪些手机有3d touch功能(哪些手机有nfc功能)

  • ps怎么把照片上多的人去掉(ps怎么把人像从照片中抠出来)

    ps怎么把照片上多的人去掉(ps怎么把人像从照片中抠出来)

  • 手机上怎么看电视直播(手机上怎么看电视剧免费)

    手机上怎么看电视直播(手机上怎么看电视剧免费)

  • wps怎么打出横线(wps怎么打出横线符号)

    wps怎么打出横线(wps怎么打出横线符号)

  • 无线网需认证什么意思(无线网需要认证是什么)

    无线网需认证什么意思(无线网需要认证是什么)

  • 微信群如何跟帖报名(微信群如何跟帖加名视频)

    微信群如何跟帖报名(微信群如何跟帖加名视频)

  • 苹果拉黑的电话在哪里(苹果拉黑的电话号码哪里看)

    苹果拉黑的电话在哪里(苹果拉黑的电话号码哪里看)

  • oppo4g网速慢怎么设置(oppo手机4g网速特别慢,怎么整)

    oppo4g网速慢怎么设置(oppo手机4g网速特别慢,怎么整)

  • 怎么把pdf转换成word(怎么把pdf转换成ofd格式)

    怎么把pdf转换成word(怎么把pdf转换成ofd格式)

  • 如何解决Win10更新显卡驱动报错?(win10更新windows)

    如何解决Win10更新显卡驱动报错?(win10更新windows)

  • 电脑中的隐藏分区有什么用(隐藏分区怎么打开)

    电脑中的隐藏分区有什么用(隐藏分区怎么打开)

  • 发票冲红重开,重开时是按新税率还是旧税率
  • 购买福利用品
  • 社保费个人承担部分
  • 报税显示税款入账未到账
  • 施工企业挂靠账务处理怎么做
  • 个人承包承租转包转租取得的所得
  • 营改增后建筑业怎么开票
  • 企业用现金购进存货是单选题
  • 公司代缴的社保个人账户能不能查到
  • 企业所得税年报补报
  • 收到一笔支付宝转账,如何查看转账人
  • 盘亏材料10000元,可以回收的保险赔偿
  • 是否退还投标文件
  • 变更许可证情况说明书模板
  • 公司和别人合伙违法吗
  • 收购个人独资企业的税收
  • 企业收取的押金要开票吗
  • 小规模纳税人月超15万季度不超45万
  • 如何理解“占应纳税额10%以上”?
  • 企业一次性支付多年费用 不摊销
  • linux系统怎么更改主机名
  • 电脑不支持cpu
  • 尚未支付的货款属于什么会计要素
  • 房租增值税专用发票税率
  • 没收的定金 会计分录
  • kb4586853更新
  • 转出未交增值税什么意思
  • php require include
  • 无销售发票的基本户收入?
  • 销售自行开发的房地产
  • 房产自用改出租房产税如何申报
  • 三年以上的应付账款
  • 哪些收入不纳税
  • 电维护费多少合法
  • 工装费用会计分录
  • thinkphp调用控制器中的方法
  • php获取访问者mac地址
  • 基于中国国情的中国式现代化具有哪些特色
  • 原生js获取document
  • vue角色管理
  • php运行linux命令
  • 长期待摊费用属于非流动资产吗
  • 金税盘开票系统复核人员设置在哪里
  • 收到的赠品怎么做分录
  • 善意取得增值税专用发票
  • 借预收账款贷其他应付款什么意思
  • phpcms怎么用
  • python模块的扩展名
  • python复制文件的代码
  • 未发工资怎么办
  • access数据库丢失原因
  • /kill @p
  • 一般纳税人每月开票不能超过多少
  • 研发支出的费用化支出计入
  • 金税盘发票二维码怎么生成
  • 什么叫代销合同
  • 银行贷款需要哪些材料
  • 未认证发票进项怎么处理
  • 关于投资收益纳税的说法
  • 机票退票手续费太贵怎么办
  • 财政总预算会计的主体是
  • 固定资产发票怎么处理
  • 高速公路过路费增值税
  • 未开票州
  • 以前年度多计提的社保费怎么冲回
  • 购进货物取得
  • 明细分类账的记账
  • win101909激活
  • windows2003 64位注册码 序列号 激活码
  • 如何修改windows默认语言
  • win7系统资源管理器无响应
  • windows.prompt用法
  • Win10 Mobile RedStone预览版14267更新内容汇总(持续更新)
  • unity3D游戏开发
  • Unity3D游戏开发培训课程大纲
  • python入门小程序编写
  • js实现滑动效果
  • android菜鸟教程
  • python convexhull
  • 排污费属于什么费用科目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设