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

如何在不修改状态的情况下将JSON对象的数组属性转为Hobby模型?

不修改原对象的前提下转换Hobbies为Hobby模型实现方案

前提说明

先修正你给出的student对象为合法的JavaScript对象格式(原示例缺少字符串引号):

const student = {
  id: 1, 
  name: 'jon',
  hobbies: ['running', 'basketball', 'soccer']
};

假设Hobby是一个类/构造函数,示例如下:

class Hobby {
  constructor(name) {
    this.name = name;
    // 可添加Hobby模型的其他属性或逻辑
  }
}

核心实现

要做到不修改原student对象的状态,我们需要创建一个全新的对象,复制原对象的所有属性,同时将hobbies替换为转换后的实例数组:

// 生成包含Hobby模型的新对象,原student完全不受影响
const studentWithHobbyInstances = {
  ...student, // 展开复制原对象的所有属性
  hobbies: student.hobbies.map(hobbyName => new Hobby(hobbyName))
};

关键逻辑解释

  • 使用对象展开运算符...复制原对象的所有属性,确保原对象的引用和内部数据都不会被修改。
  • 数组的map方法会返回一个全新的数组,每个元素都是通过new Hobby()创建的实例,原student.hobbies数组保持不变。
  • 最终student对象的状态完全保留,新对象studentWithHobbyInstances拥有转换后的Hobby模型数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:57:14