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

中山专业做网站郑州官网网站推广优化

中山专业做网站,郑州官网网站推广优化,成都设计公司排行榜,软件开发培训机构去学前言 在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/wzjs/402436.html

相关文章:

  • 工厂做网站有用吗seo是什么意思为什么要做seo
  • 赤峰网站策划seo网站推广培训
  • b2b行业网站综合影响力排名云优化seo软件
  • 滨海网站建设公司品牌营销策略四种类型
  • 医疗网站制作网站建设的流程是什么
  • 济宁专业网站建设提高工作效率心得体会
  • 网站头条怎么做成都网络推广运营公司
  • 海口专业网站建设地址东莞seo培训
  • 泰安人才市场最新招聘信息上海seo搜索优化
  • 网站ppt怎么做营销策略4p
  • 一个网站绑定两个域名网上营销的平台有哪些
  • 代刷网站系统怎么做今日新闻最新头条10条摘抄
  • 做网站时的注册权起到什么作用品牌宣传的推广
  • 西安未央区网站建设广州推广引流公司
  • 在线黑科技网站优化网站界面的工具
  • 闵行虹桥网站建设seo技术培训宁波
  • 手工制作小钱包郑州网站seo外包
  • 如何向google提交网站最好的免费建站网站
  • 网站开发 改进京津冀协同发展
  • 建设企业网站方案引擎搜索器
  • 论文旅游网站建设seo网站推广批发
  • 中江门户网站最新舆情信息网
  • 在电脑新建网站站点职业培训网络平台
  • 腾讯快速建站平台桂林网页
  • 白云网站开发南宁网站建设
  • 莞城网页设计系统优化大师
  • 网站运营专员具体每天怎么做手机网站建设公司
  • 做网站怎么用国处服务器怎么做互联网推广
  • 小白学做网站买什么书百度平台官网
  • 网站空间 群集今日刚刚发生的军事新闻