如何获取数组中嵌套对象中属性值不为空的对象?

有一个对象数组如下:


let arr = [  {id:1,aa:'aa1'},  {id:2,aa:'aa2',bb:{ cc:{dd:12} }},  {id:3,aa:'aa3',bb:{}},  {id:5,aa:'aa4',bb:{ cc:{dd:''}}},  {id:6,aa:'aa5',bb:{ cc:{dd:null}}},  {id:7,aa:'aa6'},{id:8,aa:'aa7',bb:{ cc:{dd:1} }},
]

当然要找到属性部位空的方法有很多中foreach、map循环判断等等!
但是如何简洁的找到 属性值不为空的 对象了?
你需要用到ES6最新的链式判断 和 Javascript中filter()!

浅写一下代码如下:

let a = arr.filter(x => x.bb?.cc?.dd)

是不是意想不到?一行代码解决!

当然知其然、还要知其所以然!

  • 链式运算符 是 " ?. "

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
filter 里创建了 一个箭头函数 并返回了 数组中属性不为空的对象

如何获取数组中嵌套对象中属性值不为空的对象?相关推荐

  1. 将JAVA bean/实体类 中为null的属性值转换成空字符串

    使bean中为null的属性转换成空字符串 获得getter方法 方法有分带参数和不带参数,我们知道getter方法是不带参数的 获得getter方法如下 Method m = model.getCl ...

  2. php json输出对象的属性值,JavaScript_jquery动态遍历Json对象的属性和值的方法,1、遍历 json 对象的属性/ - phpStudy...

    jquery动态遍历Json对象的属性和值的方法 1.遍历 json 对象的属性 //定义json对象 var person= { name: 'zhangsan', pass: '123', fn: ...

  3. 根据数组中对象的属性值排序倒叙

    数组中对象的属性值排序倒叙demo function compare(e) {return function (a, b) {var value1 = a[e];var value2 = b[e];r ...

  4. JS 中对数组按照数组中某个对象的属性值进行排序

    最近遇到了按照数组中某个对象的属性值进行排序的需求,找了很多种方式,下面这个完美解决: arr是数组名,attr是数组某个对象的属性 完美解决~~ 转载于:https://www.cnblogs.co ...

  5. 将对象的属性值复制到另一个对象中

    将对象的属性值复制到另一个对象中 /**** 将第一个对象的属性值复制到第二个对象中* @param <T> 第一个对象* @param <R> 第二个对象*/ class H ...

  6. 如何去遍历对象中的所有的属性值

    //本函数是使用了反射来实现访问对象的属性值的函数 //using System.Reflection;  private void GetObjectPropertyValue(clsUser us ...

  7. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  8. js对象、数组对象根据属性值进行升序降序排序

    1.js对象排序 // 排序之前 let objs = {f: {id: 2,name: '2'},a: {id: 3,name: '3'},c: {id: 1,name: '1'} }// 根据对象 ...

  9. position属性中的几个属性值

    CSS的position属性中的几个属性值 position属性 position属性 position属性有以下属性值: absolute.fixed.relative.static.sticky. ...

最新文章

  1. typora将html转为格式,Typora 修改配置文件实现自定义标签样式(常用)
  2. VTK:Medical之MedicalDemo4
  3. C 语言的标准输入对象是,《面向对象程序设计C+》期末试卷及标准答案
  4. 解决‘tf.ResizeNearestNeighbor‘ op is neither a custom op nor a flex op
  5. 前端优化-vue-cli4安装webpack-bundle-analyzer分析包文件
  6. 51nod1821-最优集合【贪心】
  7. php封ip,php实现封IP功能[原创]
  8. PyQt5-QTextEdit控件使用
  9. 深度学习神经网络的预测间隔
  10. 立创EDA封装命名规范参考
  11. jvm之java类加载机制和类加载器(ClassLoader)的详解
  12. oracle,pdb模式,数据库重启
  13. 如何使用pyodbc
  14. 美赛论文成绩批量爬取
  15. 开机自检(POST)
  16. 是什么撑起了极兔快递近200亿美元的估值?
  17. “蓝凤凰”开网店,卖起了这么多高颜值又神奇的生物
  18. arcgis注记详解
  19. 苹果8参数_iPhone11 iPhone11Pro哪里买最便宜靠谱划算 2020双十一苹果手机购机攻略...
  20. 爬虫工具在就业市场的受欢迎程度

热门文章

  1. BZOJ 1226 [SDOI2009] 学校食堂Dining
  2. 李建忠设计模式之“组件协作”模式
  3. 基于Python/Capl脚本 对通信矩阵报文(Flexray/Can)的周期检测(二)
  4. Windows无法访问 请检查名称的拼写。否则,网络可能有问题...错误代码:0x80004005
  5. xpad a note tool for ubuntu
  6. 赛昉科技 星光v1 使用笔记
  7. macOS如何正确驱动集成显卡HDMI(包括视频和音频)
  8. 10分钟教你用python打造贪吃蛇超详细教程
  9. 回想那些年我抛弃的技术 (纯属个人看法)
  10. 人事管理系统(Mysql+Java)