JS创建数组副本的问题



我正在尝试添加属性和平面图,并对数组进行更改而不改变原始数组(数据(。当我从父tp子级传递数据时,我在vue js中的一个调度调用中的两个地方使用了这个方法。

  • 当我第一次使用该方法时,一切都很好,但当我第二次在不同的子组件中使用该数组时:*看起来第一次它确实对原始数据进行了更改我不想对原始数组做任何更改。(JS和VUE JS&TS(
public mapJson(data:any){
let copyData:any = [...data]
const newObjects:Array<MetaObject> = [];
const cb = (e) => {
let elemnt: any = {...e};
if(elemnt.item.parentId.value === 0){
elemnt.item.parentId.value = null;
}

if(elemnt.item.idOnScene){
let split = elemnt.item.idOnScene.split("|");
elemnt.item.modelId = elemnt.item.id.value;
elemnt.item.id.value = split[2];
elemnt.item.name = split[1];
elemnt.item.type = split[0];
}
else{
elemnt.item.modelId = elemnt.item.id.value;
}
let newMeta = {
id: elemnt.item.id.value,
name: elemnt.item.name,
type: elemnt.item.name,
parent: elemnt.item.parentId.value,
modelId: elemnt.item.modelId
}
newObjects.push(newMeta);
e.children && e.children.forEach(cb);
}
copyData.forEach(cb);
const newData : Metadata = {
id: "",
projectId: "2GcXDGLMXA_8_$wW69Hy7E",
author: "",
createdAt: "2019-01-21T13:24:08",
schema: "IFC2X3",
creatingApplication: "20181011_1500(x64) - Exporter 18.4.0.0 - Alternate UI 18.4.0.0",
metaObjects: newObjects
};
return newData;
}

JSON.parse(JSON.stringfy(object((解决问题

相关内容

  • 没有找到相关文章

最新更新