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

可变结构嵌套JS对象如何将所有子项x值替换为带百分号的字符串?

实现方案

两种实现分别适配不同使用场景,时间复杂度均为O(n)(n为顶层对象的键数量),执行效率高,写法简洁:


原地修改原对象

适合不需要保留原对象数据的场景:

Object.values(obj).forEach(item => {
  // 加判断避免子对象无x属性时报错
  if (item?.x != null) item.x = `${item.x}%`
})

生成新对象(不修改原对象)

适合需要保留原有数据的场景,不会改动原对象的任何属性:

const newObj = Object.fromEntries(
  Object.entries(obj).map(([key, value]) => [
    key,
    // 子对象浅拷贝,若有深层嵌套属性可替换为深拷贝逻辑
    {...value, x: value.x != null ? `${value.x}%` : value.x}
  ])
)

以上方案用ES6+内置对象API实现,不需要手动写for循环判断键归属,可读性高,遍历次数仅为1次顶层键遍历,性能和手写循环基本一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:01