DATA = {
data: [
{ id: "1r5WioSdYLVqp", row: 1, assetType: "1r5WioSdYLVqp", status: "" },
{ id: "w1muKlmY4lsR", row: 2, assetType: "w1muKlmY4lsR", status: "" },
{ id: "1foDN2HDHiAbT", row: 3, assetType: "1foDN2HDHiAbT", status: "" }
]
};
new = { row: 1, assetType: "1fKBO4w0XHg7H", status: "ACTIVE" }
constructor() { }
ngOnInit() {
console.log(this.DATA);
this.DATA['data'].forEach((dt, index) => {
if (dt.row === this.new.row) {
this.DATA['data'][index] = this.new;
}
});
console.log(this.DATA)
}
答案 0 :(得分:2)
我们可以通过使用类型注释来表明该项目没有for w in api
iwell = df[!, :API] .== w
welldates = df[!, :Monthly_Production_Date][iwell]
cgor = df[!, :norm_3m_moving_avg_cGOR][iwell]
isortedwelldates = sortperm(welldates)
Mads.plotseries([cgor[isortedwelldates]], "Bone_Spring_ML_analyses/figures-data/well-$w.png"; title="Well $(w)", names=["Cumulative_GOR"], colors=["red"], xaxis=welldates[isortedwelldates])
end
。
首先,让我们声明一个类型:
id
上面interface Item {
id?: string;
row: number;
assetType: string;
status: string;
}
上的?
表示它是一个可选属性。可以指定也可以不指定。
现在应用它:
id
请注意,我以对象文字类型DATA: { data: Item[] } = {
data: [
{ id: "1r5WioSdYLVqp", row: 1, assetType: "1r5WioSdYLVqp", status: "" },
{ id: "w1muKlmY4lsR", row: 2, assetType: "w1muKlmY4lsR", status: "" },
{ id: "1foDN2HDHiAbT", row: 3, assetType: "1foDN2HDHiAbT", status: "" }
]
};
new = { row: 1, assetType: "1fKBO4w0XHg7H", status: "ACTIVE" }
constructor() { }
ngOnInit() {
console.log(this.DATA);
this.DATA.data.forEach((dt, index) => {
if (dt.row === this.new.row) {
this.DATA.data[index] = this.new; // no error.
}
});
console.log(this.DATA)
}
的形式添加了其他类型。这样做是因为问题中的代码嵌套。如果{ data: Item[] }
仅具有一个属性DATA
,我将对其进行包装以简化操作。
那你就可以写
data
哪个更容易阅读和编写。或者,我们可以为外部对象声明类型
data: Item[] = [
{ id: "1r5WioSdYLVqp", row: 1, assetType: "1r5WioSdYLVqp", status: "" },
{ id: "w1muKlmY4lsR", row: 2, assetType: "w1muKlmY4lsR", status: "" },
{ id: "1foDN2HDHiAbT", row: 3, assetType: "1foDN2HDHiAbT", status: "" }
]
最后,与此无关,我们可以通过删除不必要的interface DataWrapper {
data: Item[];
}
DATA: DataWrapper = {
data: [
{ id: "1r5WioSdYLVqp", row: 1, assetType: "1r5WioSdYLVqp", status: "" },
{ id: "w1muKlmY4lsR", row: 2, assetType: "w1muKlmY4lsR", status: "" },
{ id: "1foDN2HDHiAbT", row: 3, assetType: "1foDN2HDHiAbT", status: "" }
]
}
来清理这段代码。
forEach
答案 1 :(得分:1)
在变量id
的属性new
上设置null。
new = { id: null, row: 1, assetType: "1fKBO4w0XHg7H", status: "ACTIVE" }
答案 2 :(得分:1)
这可能是打字稿迫使您编写更好的代码的情况。我想不出任何原因来生成具有空ID的数据。为什么不这样:
del numbers[j]
答案 3 :(得分:1)
我建议为数据中的对象创建一个类型,并按如下所示相应地设置类型,以帮助您提示缺少的内容,以避免这种混乱:
useState