繁体   English   中英

如果特定键的值相同,如何将值更新为嵌套的对象数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM