组合使用map 和find重组数组对象

需求:有两个均是数组对象结构的数组,如下:

1//第一个数组对象结构如下: arr1数组长度大于arr2 2arr1=[ 3 {adCode:"12340",adName:'河南省'}, 4 {adCode:"12341",adName:'山东省'}, 5 {adCode:"12342",adName:'广东省'}, 6 {adCode:"12343",adName:'上海市'}, 7 {adCode:"12344",adName:'安徽省'}, 8]
1//第二个数组对象结构如下: 2arr2=[ 3 {adCode:'12342',adValue:"98"}, 4 {adCode:'12340',adValue:"48"}, 5 {adCode:'12341',adValue:"90"}, 6]

由上面的数据结构可以看出,若想获得如下数据结构:

1arr3=[ 2 {adName:"河南省",adValue:"48"} 3]

则可进行如下操作:

1const arr = arr1.map((v)=>{ 2 const newResult = arr2.find((item)=>v.adCode ===item.adCode); 3 return {adName:v.adName,adValue:newResult.adValue} 4})

若arr2数组结构如下:

1arr2=[ 2 {adCode:'12342',adValue:"98"}, 3 {adCode:'12340',adValue:undefined}, 4 {adCode:'12341',adValue:"90"}, 5 {adCode:'12344',adValue:"40"}, 6 {adCode:'12343',adValue:undefined}, 7]

则操作如下:

1const arr = arr1.map((v)=>{ 2 //adValue值为undefined时,不纳入新数组arr中 3 const newResult = arr2.find((item)=>v.adCode ===item.adCode) || {}; 4 return {adName:v.adName,adValue:newResult.adValue} 5})
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

js 数组 转为树形结构

需要转换为树形的数组vardata{"orderById":null,"platformCommissionProportion":1,"name":"添加剂","pid":13,"id":26

Java开发者容易犯的十个错误

!(https://oscimg.oschina.net/oscnet/c9f00cc918684fbe8a865119d104090b.gif)Top1.数组转换为数组列表将数组转换为数组列表,开发者经常会这样做:\java\List<StringlistArrays.asList(arr);Arr