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

如何为数组对象中嵌套的token0、token1添加symbol属性?

解决方法

首先纠正你代码里的两处小错误:

  • myObj.data.user[0] 应该是 myObj.data.users[0](原对象结构里是users数组)
  • map回调里的...balance 应该是 ...liquidityPosition(参数名是liquidityPosition)

要在保留所有原有属性的前提下,给token0和token1添加symbol属性,你可以通过逐层解构对象+扩展运算符来实现,具体代码如下:

let updated = myObj.data.users[0].liquidityPositions.map(
  (liquidityPosition) => ({
    // 保留当前liquidityPosition的所有原有属性
    ...liquidityPosition,
    // 重新定义pair属性,先拷贝原有pair的所有属性
    pair: {
      ...liquidityPosition.pair,
      // 更新token0,保留原有id,添加symbol
      token0: {
        ...liquidityPosition.pair.token0,
        symbol: "你的token0符号值"
      },
      // 更新token1,保留原有id,添加symbol
      token1: {
        ...liquidityPosition.pair.token1,
        symbol: "你的token1符号值"
      }
    }
  })
);

如果symbol值需要根据token的id动态获取(比如从预定义的映射表取值),可以改成下面的写法:

// 示例:token id 与 symbol 的映射表
const tokenSymbolMap = {
  "token0-id-1": "ETH",
  "token1-id-1": "USDT",
  // 更多映射关系...
};

let updated = myObj.data.users[0].liquidityPositions.map(
  (liquidityPosition) => ({
    ...liquidityPosition,
    pair: {
      ...liquidityPosition.pair,
      token0: {
        ...liquidityPosition.pair.token0,
        symbol: tokenSymbolMap[liquidityPosition.pair.token0.id] || "未知符号"
      },
      token1: {
        ...liquidityPosition.pair.token1,
        symbol: tokenSymbolMap[liquidityPosition.pair.token1.id] || "未知符号"
      }
    }
  })
);

这种方式通过...扩展运算符浅拷贝每一层的原有属性,再针对性修改token0和token1,既不会丢失任何原有数据,也能顺利添加新属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 07:25:10