![](/img/trans.png)
[英]How to shift all the items in an array to the right(by 1) using method map?
[英]How to add items into specific Id using the react array map method
這是我的示例數組,其中包含ID,項目和項目注釋說明。
let sampleArr = [
{
id:1,
item:"item",
notes:["one"]
},
{
id:2,
item:"item2",
notes:["one","two"]
},
{
id:3,
item:"item3",
notes:["one","two"]
}
]
在這里,我想將注釋添加到帶有以下注釋的id:3中:“三”,因此我希望最終輸出應類似於示例數組。
{
id:3,
item:"item3",
notes:["one","two","three"]
}
您可以創建一個函數,該函數根據id和更新值搜索元素
let sampleArr = [{id: 1,item: "item",notes: ["one"]},{id: 2,item: "item2",notes: ["one", "two"]},{id: 3,item: "item3",notes: ["one", "two"]}] const updateNotes = (id,value) =>{ return sampleArr.map(v=> { return v.id == id ? {...v, notes: [...v.notes, value]} : v }) } console.log(updateNotes(3,'three'))
這里的要點是只concat
新note
時item.id === id
否則只返回舊項目
const addNoteById = (note, id) =>{
return sampleArr.map(item =>({
...item,
notes : item.id === id ? item.notes.concat(note) : item.notes
}))
}
const sampleArr = [{id:1,item:"item", notes:["one"]},{id:2,item:"item2",notes:["one","two"]},{id:3,item:"item3",notes:["one","two"]}] const addNoteById = (note, id) =>{ return sampleArr.map(item =>({ ...item, notes : item.id === id ? item.notes.concat(note) : item.notes })) } const result = addNoteById('foo', 3) console.log(result)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.