如何克隆具有不同特定值的对象

How to clone object with different specific values

我想按评估单元 ID 拆分对象。

我有这个


{ 
"name": "test",
"description": "test",
"asessment_units[]": ["2", "4", "5","8"]
}

从这个对象我想要四个对象(因为我在评估单元中有 4 个元素)。

第 1 个对象

{ 
"name": "test",
"description": "test",
"asessment_units[]": ["2"]
} 

第二个对象

{ 
"name": "test",
"description": "test",
"asessment_units[]": ["4"]
} 

第三个对象

{ 
"name": "test",
"description": "test",
"asessment_units[]": ["5"]
} 

第 4 个对象

{ 
"name": "test",
"description": "test",
"asessment_units[]": ["8"]
} 

也许你可以使用 Array.prototype.<b>map</b> and Object.<b>assign</b>:

const obj = {
  name: "test",
  description: "test",
  "asessment_units[]": ["2", "4", "5", "8"],
};
const splitObjs = obj["asessment_units[]"].map(unit =>
  Object.assign({}, obj, {
    "asessment_units[]": [unit],
  })
);
console.log(splitObjs);

您可以在asessment_units[]上使用Array.prototype.map()来实现转换。散布对象的 namedescription 键,因为它们很常见,并在 map.

回调内的数组中插入相应的值
const obj = { 
  "name": "test",
  "description": "test",
   "asessment_units[]": ["2", "4", "5","8"]


}

 const res = obj['asessment_units[]'].map((val,index)=>{

   return {...obj, ['asessment_units[]'] : [val]}
})