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

广州网站优化排名系统广东华电建设股份有限公司网站

广州网站优化排名系统,广东华电建设股份有限公司网站,三河市最新消息,沈阳网页设计收费标准在JavaScript中访问嵌套对象以超酷的方式安全地访问JavaScript中的嵌套对象JavaScript是惊人的#xff0c;我们都知道。但是JavaScript中的一些东西真的很奇怪#xff0c;它们让我们大开眼界。其中一个问题是当您尝试访问嵌套对象时与此错误的对抗#xff0c;无法读取未定义…在JavaScript中访问嵌套对象以超酷的方式安全地访问JavaScript中的嵌套对象JavaScript是惊人的我们都知道。但是JavaScript中的一些东西真的很奇怪它们让我们大开眼界。其中一个问题是当您尝试访问嵌套对象时与此错误的对抗无法读取未定义的属性foo大多数情况下当我们使用JavaScript时我们将处理嵌套对象并且通常我们需要安全地访问最里面的嵌套值。我们以此嵌套对象为例。const user { id: 101, email: jackdev.com, personalInfo: { name: Jack, address: { line1: westwish st, line2: washmasher, city: wallas, state: WX } }}要访问我们用户的名字我们会写const name user.personalInfo.name;const userCity user.personalInfo.address.city;这很简单直接。但是由于某种原因如果我们用户的个人信息不可用那么对象结构将是这样的。const user { id: 101, email: jackdev.com}现在如果您尝试访问该名称您将被抛出 无法读取未定义的属性“名称”。const name user.personalInfo.name; // Cannot read property name of undefined这是因为我们试图name 从不存在的对象访问 密钥。大多数开发人员处理这种情况的常用方法是const name user user.personalInfo ? user.personalInfo.name : null;// undefined error will NOT be thrown as we check for existence before access如果您的嵌套结构很简单这是可以的但是如果您的数据嵌套了5或6级那么您的代码看起来会非常混乱let city;if ( data data.user data.user.personalInfo data.user.personalInfo.addressDetails data.user.personalInfo.addressDetails.primaryAddress ) { city data.user.personalInfo.addressDetails.primaryAddress;}处理这种混乱的对象结构有一些技巧。Oliver Steele的嵌套对象访问模式这是我个人最喜欢的因为它使代码看起来 干净 和 简单。我从stackoverflow中选择了这种风格一旦你理解它是如何工作的它就非常吸引人了。const name ((user || {}).personalInfo || {}).name;使用这种表示法您将永远不会遇到 无法读取未定义的属性“名称”。你基本上检查用户是否存在如果没有你动态创建一个空对象。这样下一级键将 始终从存在的对象或空对象访问但永远不会从未定义。不幸的是 您无法使用此技巧访问嵌套数组使用Array Reduce访问嵌套对象Array reduce方法非常强大可用于安全地访问嵌套对象。const getNestedObject (nestedObj, pathArr) { return pathArr.reduce((obj, key) (obj obj[key] ! undefined) ? obj[key] : null, nestedObj);}// pass in your object structure as array elementsconst name getNestedObject(user, [personalInfo, name]);// to access nested array, just pass in array index as an element the path array.const city getNestedObject(user, [personalInfo, addresses, 0, city]);// this will return the city from the first address item.Typyhttps://github.com/flexdinesh/typy如果您认为上述方法过于主流那么您应该尝试 我编写的Typy库。除了安全地访问嵌套对象之外它还有许多令人敬畏的东西。它以npm包的形式提供 - Typy如果您使用 Typy您的代码将如下所示import t from typy;const name t(user, personalInfo.name).safeObject;const city t(user, personalInfo.addresses[0].city).safeObject;// address is an array编辑还有一些像Lodash和Ramda这样的其他库可以做到这一点。但是在轻量级的前端项目中特别是如果你只需要这些库中的一两种方法最好选择替代轻量级的lib或者更好自己编写。快乐安全地访问JavaScript中的嵌套对象链接https://javascriptkicks.com/articles/236734/accessing-nested-objects-in-javascript
http://icebutterfly214.com/news/27234/

相关文章:

  • 【Linux环境编程】2. Linux核心指令(上)
  • 图书馆管理系统需求规格说明书
  • 含错方程与非线性滤波模型的逼近攻击
  • 完整教程:Android监听第三方播放获取音乐信息及包名
  • OneDrive上传和下载速度慢?有什么解决办法吗? - 指南
  • win10安装广东省正版化检查工具
  • 红外遥控
  • 圆锥滚子轴承品牌:行业顶尖选择与专业解析
  • MATLAB 实现 SRCNN 图像超分辨率重建
  • 2025 秋季 洛阳游
  • 2025年合肥品牌设计团队专业排行
  • Window 11 安装wsl
  • 2025年评价高的冷库提升机TOP品牌厂家排行榜
  • Flask的核心知识点如下
  • 2025年比较好的行星减速器厂家选购指南与推荐
  • 2025年口碑好的激光切割比例阀厂家选购指南与推荐
  • 我的博客
  • 领码方案|微服务与SOA的世纪对话(5):未来已来——AI 驱动下的智能架构哲学 - 详解
  • 目前成都低压电缆工厂推荐榜top10
  • 【DNN】基础环境搭建 - 指南
  • 解码lvgl图片
  • 2025年口碑好的直角中空旋转平台TOP实力厂家推荐榜
  • 实用指南:探索大语言模型(LLM): 大模型应用与对应的硬件选型一览表
  • 逆向基础--C++数据类型 (02)
  • 2025年正规的仪器计量校准厂家最新用户好评榜
  • Ubuntu 软件安装中心闪退
  • 2025年评价高的专利评估综合口碑榜
  • 2025年优质的青年鸡高评价榜
  • day07-一键生成儿歌视频工作流
  • 中文机器阅读理解数据集:7000条高质量问答数据,涵盖搜索与知道双场景,支持DESCRIPTION:YES_NO:ENTITY多类型问题,适用于BERT:GPT等模型训练与评估