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

如何将Object对象属性值转换为数组并添加新元素

实现对象字符串属性转数组并追加新值的方案

原代码存在的问题

  • 遍历namesFromApi时直接对object.names重复赋值,会覆盖之前的操作结果,最终仅能保留原字符串和数组最后一个元素
  • 代码中直接引用names变量没有绑定到对象属性,运行时会抛出未定义异常

正确实现

你可以直接利用数组展开语法一步完成「字符串转数组+保留原属性值+合并新值」的需求:

const object = {
  names: "John"
}
const namesFromApi = ['Ken', 'Ben', 'Joana', 'Fillip']

// 转换后object.names为 ["John", "Ken", "Ben", "Joana", "Fillip"]
object.names = [object.names, ...namesFromApi]

如果需要对合并后的结果去重,可以搭配Set实现:

object.names = [...new Set([object.names, ...namesFromApi])]

如果后续需要持续往该属性中追加新元素,可以先做类型判断再操作:

// 仅当属性值为字符串时才做转数组处理,避免重复转换
if (typeof object.names === 'string') {
  object.names = [object.names]
}
// 追加单个元素
object.names.push('Mike')
// 追加多个元素
object.names.push(...['Lisa', 'Bob'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:42:03