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

LinMeng 等级 772 1 1
标签: 数组前端

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

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

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

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

则可进行如下操作:

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

若arr2数组结构如下:

arr2=[
  {adCode:'12342',adValue:"98"},
  {adCode:'12340',adValue:undefined},
  {adCode:'12341',adValue:"90"},
  {adCode:'12344',adValue:"40"},
  {adCode:'12343',adValue:undefined},
]

则操作如下:

const arr = arr1.map((v)=>{
     //adValue值为undefined时,不纳入新数组arr中
    const newResult = arr2.find((item)=>v.adCode ===item.adCode) || {};
    return {adName:v.adName,adValue:newResult.adValue}
})
收藏
评论区

相关推荐

js 的 forEach,map,filter,some,every,find(es6),reduce详解
forEach() 定义和用法 forEach()方法用于调用数组的每个元素,并将元素传递给回调函数 注意: forEach()对于空数组是不会执行回调函数的。 语法 array.forEach(function(currentValue,index,arr),thisValue) 参数 function(currentValue,index,a
组合使用map 和find重组数组对象
需求:有两个均是数组对象结构的数组,如下: //第一个数组对象结构如下: arr1数组长度大于arr2arr1 {adCode:"12340",adName:'河南省'}, {adCode:"12341",adName:'山东省'}, {adCode:"12342",adName:'广东省'}, {adCode:"12343",adNa
简简单单复习一哈HashMap
HashMap可被序列化,线程不安全,允许null值和null键,安全的MapCollections.synchronizedMap(): / Returns a synchronized (threadsafe) map backed by the specified map. In order to guarantee s
linux find 命令查找文件和文件夹
查找目录:find /(查找范围) name '查找关键字' type d 查找文件:find /(查找范围) name 查找关键字 print详解:find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
MongoDB 聚合函数
概念 -- 聚合函数是对一组值执行计算并返回单一的值 主要的聚合函数 count distinct Group MapReduce 1、count ------- db.users.count() db.users.count({"uname":"hxf1"}) db.users.count({"salary":{"$gt":15000}
Union Find
并查集是在各个不相交集合中查找某元素存在否,可以接近常数级查找例如,图的连通性,最近公共祖先等问题。一般用森林 数组实现。 一般有2个操作,查找(find)和合并(union) 查找:从集合中查找元素x是否存在。 合并:如果2个集合不想交则可以合并操作,一般方法是高度低的合并到高度高的。 初始化每个元素都可以是一个单独的集合,然后不断引入关系来合并他
linux命令:find命令
http://[blog.csdn.net/pipisorry/article/details/39831419](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fblog.csdn.net%2Fpipisorry%2Farticle%2Fdetails%2F39831419) **linu
C++ 之获取map元素[转]
链接:https://www.cnblogs.com/jianfeifeng/p/11089799.html   对于map对象, count成员返回值只能是0或者1,map容器只允许一个键对应一个实例。所以count可有效地表明一个键是否存在。count返回出现的次数。   find返回指向元素的迭代器, 如果元素不存在, 则返回end 迭代器。  
ES6中的map和reduce
一 实战 ==== <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
Execel
数据 -- ./Monday/Play ./Tuseday/Work ./Wednesday/Sleep 需求 -- 获取路径中首个目录的名称。 方法 -- 思路转换: 获取第一、第二个斜杠之间的字符串。 表达式: =FIND("/",A2,1) =FIND("/",A2,FIND("/",A2,1)+1) =MID(
Linux Shell 文本处理工具集锦
本文将介绍Linux下使用Shell处理文本时最常用的工具: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供的例子和参数都是最常用和最为实用的; 我对shell脚本使用的原则是命令单行书写,尽量不要超过2行; 如果有更为复杂的任务需求,还是考虑python吧; find 文件查找
Linux find 命令详解
> Linux 上的 `find` 命令是 `findutil` 软件包的一部分,一般已经默认集成在了几乎所有的发行版中。 > find 命令有非常大的灵活性,可以向其指定丰富的搜索条件(如文件权限、属主、属组、文件类型、日期和大小等)来定位系统中的文件和目录。 > 此外,find 还支持对搜索到的结果进行多种类型的命令操作。 #### 一、简介
Linux命令:find .
> \# mkdir doc > > \# find . -type d -name "doc" -exec rm -rf {} \\;  #虽然此处报错,却删除成功 > > \# echo $? > > ![](https://static.oschina.net/uploads/space/2018/0102/221713_x80U_3285916
Linux的一些很有用的命令或者方法(持续更新)
0.重启(reboot)、关机(shutdown,halt)等,其中立刻关机:立刻关机: shutdown -h 0 1\. **find命令**:很强很重要 语法:find \[起始目录\] 寻找条件  操作 find / 文件名 (这样做经常找不到文件,而且还浪费时间。不知道有么有更好的方式。) 批量**查找文件中的字符串**: find | *
Python+Selenium自动化篇
本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子。 #### 0.元素定位方法主要有: * id定位:find\_element\_by\_id(' ') * name定位:find\_element\_by\_name(' ') * class定位:find\_element\_by\_class\_name(' '