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

TypeScript中使用forEach遍历对象时将null值替换为'-'的实现方法

实现方案

原有代码问题说明

你写的代码逻辑存在偏差:forEach 遍历拿到的 v 是数组中的单个对象本身,直接判断 v === null 无法匹配到对象内部的null属性值,需要额外遍历单个对象的所有键值对做判断。另外你给出的示例中 proposedTerm 是带 years 后缀的字符串,需要先提取数值再做计算。

完整实现代码

res.items.forEach((item: Record<string, any>) => {
  // 遍历对象所有属性,将null值统一替换为'-'
  Object.keys(item).forEach(key => {
    if (item[key] === null) {
      item[key] = '-';
    }
  })

  // 单独处理proposedTerm属性
  if (item.proposedTerm) {
    // 提取内容中的数字部分,兼容纯数字、带单位两种输入格式
    const termNum = parseFloat(item.proposedTerm.toString())
    if (!isNaN(termNum)) {
      // 按要求计算后拼接单位
      item.proposedTerm = `${Math.round(termNum * 10) / 10} years`
    }
  }
})

补充说明

如果你有明确的TS对象类型定义,可以把代码里的Record<string, any>替换为你的实际对象类型,类型适配性更好。如果不需要修改原对象,可以在遍历前先对对象做浅拷贝再处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:36:06