当前位置: 首页 > news >正文

html5 特效网站网站制作沈阳

html5 特效网站,网站制作沈阳,个人博客网站建设业务,企业做网站公司怎么样前言 在ES2020标准里面有一个可选链运算符,比如一个obj{}; 如果直接使用obj.a.b就会在控制台报错,而使用obj?.a?.b的返回结果为undefined并且不会报错;这是因为如果引用是空值(null 或 undefined),它不…

前言

在ES2020标准里面有一个可选链运算符,比如一个obj={};  如果直接使用obj.a.b就会在控制台报错,而使用obj?.a?.b的返回结果为undefined并且不会报错;这是因为如果引用是空值(null 或 undefined),它不会导致错误,而是使表达式短路并返回 undefined

问题

最近遇到一个面试题,要求实现可选链运算符的效果并且如果返回值为null或者undefined要支持用默认值代替,示例代码如下:

// 示例:
// obj: 传入的对象
// path: 传入字符串
// defaultValue: 默认值
function getNestedProp(obj, path, defaultValue) {}const o = {a: {b: {c: 10,},d: [{e: true,},],f: null,},
};console.log(getNestedProp(o, "a.b.c")); // 10
console.log(getNestedProp(o, "a.d.0.e")); // true
console.log(getNestedProp(o, "a.d[0].e")); // false
console.log(getNestedProp(o, "a.c.b")); // undefined
console.log(getNestedProp(o, "a.c.b", 1)); // 1
console.log(getNestedProp(o, "a.f.e", 1)); // 1

解决方案

1.首先要将字符串path转化成数组

2.然后遍历数组,把数组中的每一项和obj进行匹配,如果是null 或 undefined, 则返回defaultValue;

3.如果不是null 或 undefined, 我们就需要最新赋值的对象跟数组的下一个索引项重新来匹配;

具体代码如下:

function getNestedProp(obj, path, defaultValue) {const keys = path.split(".");let current = obj;for (const key of keys) {if (current === null || current === undefined) {return defaultValue;}current = current[key];}return current;
}const o = {a: {b: {c: 10,},d: [{e: true,},],f: null,},
};console.log(getNestedProp(o, "a.b.c")); // 10
console.log(getNestedProp(o, "a.d.0.e")); // true
console.log(getNestedProp(o, "a.d[0].e")); // false
console.log(getNestedProp(o, "a.c.b")); // undefined
console.log(getNestedProp(o, "a.c.b", 1)); // 1
console.log(getNestedProp(o, "a.f.e", 1)); // 1

http://www.dtcms.com/a/508253.html

相关文章:

  • 网站公司怎么做今天军事新闻最新消息详细
  • MathJax本地化显示数学符号
  • CGroups资源控制实战【Linux】
  • 【数学】诱导公式
  • TDengine 数学函数 PI 用户手册
  • 郑州企业网站类似于凡科的网站
  • maven简介与安装
  • 网站通栏广告设计会员制网站建设
  • 【DIY】RS232串口监听头制作
  • 【CMakeLists.txt】project(LibreCAD VERSION 2.2.2)
  • 网站怎么加链接网店美工实训报告
  • Marin说PCB之SI----做信号完整性仿真时需要注意的地方--01
  • 用C语言实现组合模式
  • 石家庄哪里有网站推广深圳网站建设开发哪家好
  • C#开发学习杂笔(更新中)
  • 【JAVA】实体类注解不持久化至数据库
  • 【Java 开发工程师面试场景题大全】
  • 站长推荐跳转福州网站制作维护服务
  • 垂直网站建设规模项目推广方案怎么写
  • 物联网如何重塑现代物流?从“货物运输”到“智能供应链”的变革!
  • 网站申请支付宝支付html网站的设计
  • Process Monitor 学习笔记(5.17):常见问题 性能调优(FAQ + Best Practices)
  • 从零开始学像素画——第三章 1.3像素画明暗
  • 如何有效应对企业数据爆炸式增长?群晖 RS4017xs+私有云存储有办法
  • 自适应检索增强生成(Adaptive RAG):智能问答的新范式
  • Python3 正则表达式详解
  • 智慧养老照护实训室沉浸式教学场景搭建与护理人才培养路径
  • YOLOv3目标检测算法深度解析:从核心改进到实战应用
  • Web前端开发工具实战指南 从开发到调试的完整提效方案
  • 济南网站设计公司富wordpress不兼容ie