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

JS按sub_name属性去重vars数组返回嵌套数组问题排查

问题原因

你的removeDuplicates工具方法本身逻辑没有问题,错误出在对原数组的map处理逻辑上:
你当前的写法中,map的回调函数直接将removeDuplicates(o.vars, "sub_name")的返回值(即去重后的vars数组)作为每一项的返回结果,没有保留原对象的name、id等属性,最终得到的数组元素都是处理后的vars数组,和你预期的对象结构不符。

修复方案

两种常用实现方式:

方式1:不修改原数组,返回新数组(推荐)

使用展开运算符保留原对象的其他属性,仅替换vars为去重后的结果:

const processedArr = this.someArrayOfObjects.map(item => {
  return {
    ...item,
    vars: this.removeDuplicates(item.vars, "sub_name")
  }
})

方式2:直接修改原数组

如果不需要保留原数据,可以用forEach直接修改每个元素的vars属性:

this.someArrayOfObjects.forEach(item => {
  item.vars = this.removeDuplicates(item.vars, "sub_name")
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 04:24:02