You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中检查API返回嵌套属性是否存在的最优方案

解决方案

单行直接写法

你之前的写法存在漏洞:如果awayTeam.record本身未定义,访问record[0]会直接抛出错误。正确的单行写法需要在每一层可能未定义的嵌套节点都加上可选链操作符?.,再配合空值合并运算符??(仅当值为null/undefined时返回默认值,比||更精准,不会误判0、''等合法 falsy 值):

<h1> {awayTeam?.record?.[0]?.displayValue ?? "0-0"} </h1>

批量处理通用方案

如果有大量类似的嵌套属性需要处理,封装一个通用工具函数会更简洁:

const getNestedProp = (obj, path, defaultValue) => {
  return path.reduce((curr, key) => curr?.[key], obj) ?? defaultValue;
};

使用时只需传入目标对象、属性路径数组和默认值:

<h1> {getNestedProp(awayTeam, ['record', 0, 'displayValue'], '0-0')} </h1>

这样不管嵌套层级多深,都能统一处理,避免重复写大量?.。

内容的提问来源于stack exchange,提问作者ZachSal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 07:38:11