[英]add value to specific object in array by index of array
如何通過index
將特定object
值添加到array
?
我寫了這個,但當然,它在array
創建了一個新object
,但我想將“錯誤”插入到具有index
的現有object
(在屏幕上它為 0 索引)
ipcRenderer.on('fileData', (event, data) => {
this.setState({jobs: [...this.state.jobs, {errors: data}]})
});
然后我寫了這個:
ipcRenderer.on('fileData', (event, data) => {
this.state.jobs.forEach((item, index) => {
this.setState({jobs: [...this.state.jobs, {errors: item[index] = data}]
})
console.log(this.state)
})
});
它向object
插入一個值,但沒有名稱,它仍然在array
創建一個新元素
我希望結果是這樣的:
jobs: [
0: {errors: 10, fileName:...}
]
如果你知道索引,你可以做
const jobs = this.state.jobs.slice(0);
jobs[index].errors = data;
this.setState({jobs});
可能需要做的不僅僅是對數組進行切片,還可能需要進行深度復制,但是是的,這應該可行。
首先,您可以制作數組的副本,例如
let jobsCopy = this.state.jobs
然后,如果您知道索引,您可以這樣做
jobsCopy[index].errors = 10
this.setState({
jobs: jobsCopy
})
您需要知道要更改的對象的索引。 例如,如果您知道它是數組中的第一項,您可以這樣做:
const indexToChange = 0
this.setState(prevState => prevState.map((obj, i) => {
if(i === indexToChange) {
return {
...obj,
errors: data
}
} else {
return obj
}
}))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.