位置: 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原理详解及代码实现(目标检测标注框的规则)

  • 弱势市场如何打造无敌营销战队(弱势有效市场基本面分析)

    弱势市场如何打造无敌营销战队(弱势有效市场基本面分析)

  • 小米mix4怎么双击亮屏(小米mix4手机分身在哪里)

    小米mix4怎么双击亮屏(小米mix4手机分身在哪里)

  • vivox50pro是双扬声器吗(vivox50pro有双扬声器吗)

    vivox50pro是双扬声器吗(vivox50pro有双扬声器吗)

  • 微信一直安装失败是什么原因(微信一直安装失败原因)

    微信一直安装失败是什么原因(微信一直安装失败原因)

  • 怎样可以查询微信群被谁举报的(怎样可以查询微信转账记录明细)

    怎样可以查询微信群被谁举报的(怎样可以查询微信转账记录明细)

  • 抖音为什么看不了别人在线(抖音为什么看不到别人的作品)

    抖音为什么看不了别人在线(抖音为什么看不到别人的作品)

  • mxf文件用什么播放器(mxf是什么文件格式)

    mxf文件用什么播放器(mxf是什么文件格式)

  • 华为手机突然黑屏咋解决(华为手机突然黑白屏)

    华为手机突然黑屏咋解决(华为手机突然黑白屏)

  • iphone7p发烫解决办法(iphone7plus发热严重)

    iphone7p发烫解决办法(iphone7plus发热严重)

  • ipadpro屏幕材质(2020款ipadpro屏幕材质)

    ipadpro屏幕材质(2020款ipadpro屏幕材质)

  • softap模式是什么意思(soft oa)

    softap模式是什么意思(soft oa)

  • x27左边的按键是什么用途(x27左边的按键是什么功能)

    x27左边的按键是什么用途(x27左边的按键是什么功能)

  • 手机为什么会停机有话费(手机为什么会停机啊交过钱了)

    手机为什么会停机有话费(手机为什么会停机啊交过钱了)

  • iphone11港版全网通吗(苹果11港版区别)

    iphone11港版全网通吗(苹果11港版区别)

  • 退出excel的组合键是(退出excel可使用组合键)

    退出excel的组合键是(退出excel可使用组合键)

  • mate30多大屏(华为mate30屏多大)

    mate30多大屏(华为mate30屏多大)

  • 人参果与什么食物相克(人参果与什么食物相克呢视频)

    人参果与什么食物相克(人参果与什么食物相克呢视频)

  • 苹果感光怎么关闭(iphone感光怎么关闭)

    苹果感光怎么关闭(iphone感光怎么关闭)

  • 微光app怎么添加好友(微光app添加视频网站链接)

    微光app怎么添加好友(微光app添加视频网站链接)

  • oppo下滑搜索怎么取消(oppo手机下拉搜索)

    oppo下滑搜索怎么取消(oppo手机下拉搜索)

  • beatsx开机键在哪

    beatsx开机键在哪

  • 网易考拉怎么购买商品(网易考拉怎么购买会员)

    网易考拉怎么购买商品(网易考拉怎么购买会员)

  • skynetave.exe - skynetave是什么进程  有什么用

    skynetave.exe - skynetave是什么进程 有什么用

  • nerosvc.exe - nerosvc是什么进程 有什么用

    nerosvc.exe - nerosvc是什么进程 有什么用

  • 性能优化必备——火焰图(性能优化模式)

    性能优化必备——火焰图(性能优化模式)

  • python根据键值(value)返回键(key)(python根据键输出值)

    python根据键值(value)返回键(key)(python根据键输出值)

  • 生产经营怎么填写
  • 外币收入的增值税是多少
  • 土地摊销全部计入成本吗
  • 质保金一年怎么写
  • 事业单位存货发生盘亏或盘盈处理
  • 一般纳税人取得普票怎么做账
  • 结转本月收入类账户到本年利润会计分录
  • 一般纳税人公司卖车怎么做账
  • 一般开发间接费
  • 托收承付是收到钱了吗
  • 虚开发票走账对方不返还如何处理?
  • 退税收入需要缴纳所得税吗
  • 合同印花税进哪个科目
  • 财税2018 39号文件
  • 分期收款计提销项税怎么算
  • 一般纳税人怎么计算增值税
  • 发放给职工
  • 外管证预缴增值税怎么抵扣
  • 一般纳税人简易计税会计分录
  • 个人出租住宅需要交哪些税
  • php存储过程是什么
  • 公司logo设计费是业务宣传费吗
  • 销售已使用过的小汽车增值税
  • php教程100
  • f12开发者工具调试打不开
  • codeigniter 教程
  • 期末增值税结转账务处理
  • 收到现金货款存入银行会计分录
  • 兰斯洛特
  • 前端基础知识总结
  • 建筑行业工程结算属于什么科目
  • 可供出售金融资产公允价值变动
  • 应付职工薪酬账户
  • 税务申报显示已申报
  • Vite + Vue2 + Vuetify2 + <script setup> + TypeScript 搭配开发项目
  • 电子承兑接收了,但是后来怎么没有了
  • 当月认证的发票可以撤销吗
  • 无效发票进项税额抵扣
  • mysql临时表什么时候销毁
  • 小程序集合软件
  • 织梦如何开启会员功能
  • 企业报税表格填写
  • 国有划拔土地房整体可以买卖吗
  • 出口报关金额怎么算
  • 物流公司驾驶员安全教育培训
  • 房地产影响投资和消费,事关民生和发展
  • 怎么冲减多计提的增值税
  • 固定资产入账标准最新规定企业
  • 简易征收增值税一般纳税人怎么报税
  • 投资者以现金支出为准
  • 分公司有独立账套吗
  • 日记账的建账工作
  • sqlserver通用的删除服务器上的所有相同后缀的临时表
  • SQL Server Bulk Insert 只需要部分字段时的方法
  • 微软安装环境
  • windowsxp开机启动项在哪里设置
  • WIN10专业版怎么查看操作位数
  • 微软何时推出win10
  • w10系统屏幕一直在闪
  • 微软商城会员
  • 在linux系统中拥有
  • win10切换登陆账户为administrator
  • linux自动化装机
  • 日亚海淘官网
  • linux脚本作用
  • ie内存怎么清理
  • vue组件互相嵌套
  • vue $route $router
  • andriod 控件
  • apk签名生成器
  • 使用权资产
  • listview item
  • jquery属性选择器,选取所有带href
  • jquery使用教程
  • 企业自产自销农产品免税政策有哪些
  • 国土国税垂管部主任是谁
  • 个人经营所得税怎么做账务处理
  • PLC交通信号灯控制程序设计
  • 股权转让所得怎么申报
  • 可转债中签当天扣款吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设