![](/img/trans.png)
[英]How to update a key/value pair in a nested array of objects in Javascript
[英]How to update the value into a nested array of objects if value for specific key is same?
let data = [
{"name":"Dhanush","createdAt":"2021/01/13 16:57:53","songs":[]},
{"name":"Dharma","createdAt":"2021/01/13 17:02:47","songs":[]},
{"name":"Sachin","createdAt":"2021/01/13 17:30:45","songs":[]}
]
let name = "Dhanush"
let song = {
'id':1,
'duration': '5 mins',
'name': 'Bingo'
}
这里我需要循环数据数组并检查data.name === name,如果是真的我需要将歌曲object推送到数据内的歌曲数组中。
这表示
data = data.map(val => val.name === name ? val.songs = [...val.songs,song] : val.songs)
我试过这样。 但它不起作用。
非常感谢您的帮助。
谢谢
使用 map 方法时,您没有返回val
。
let data = [ { name: 'Dhanush', createdAt: '2021/01/13 16:57:53', songs: [] }, { name: 'Dharma', createdAt: '2021/01/13 17:02:47', songs: [] }, { name: 'Sachin', createdAt: '2021/01/13 17:30:45', songs: [] }, ]; const name = 'Dhanush'; const song = { id: 1, duration: '5 mins', name: 'Bingo', }; data = data.map( (val) => ( val.name === name? (val.songs = [...val.songs, song]): val.songs, val ) ); console.log(data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.