如何解决将对象添加到具有功能的对象数组中?
我了解将对象添加到数组所需的命令。我知道它的array.push(object)
。
但是,说我有这个对象数组:
const artists = [{
"rank": 1,"name": "Rakim","year": 1985,"album": "Paid in Full",},{
"rank": 2,"name": "Nas","year": 1994,"album": "Illmatic"
}
]
如果我需要添加一个新的功能。我该怎么办?而且我想使其功能可以使我将来添加多个。
类似,
function addArtist(array {}) {
return array;
}
console.log(addArtist(array {
new object here
}));
解决方法
您需要使用spread operator
将array
个对象传递给函数,并将其传递给初始的artists
(应为let
):
let artists = [
{
"rank": 1,"name": "Rakim","year": 1985,"album": "Paid in Full"
},{
"rank": 2,"name": "Nas","year": 1994,"album": "Illmatic"
}
]
function addArtist (artistsToAdd) {
artists.push(...artistsToAdd);
return artists;
}
const objects = [
{
"rank": 3,"name": "Bob","year": 1995,"album": "Album3"
},{
"rank": 4,"year": 1992,"album": "Album4"
}
];
console.log(addArtist(objects));
您还可以使用concat
将对象添加到列表中。
如果要将代码分成多个文件,并且不想使用全局artists
变量污染全局范围,或者您不想使用artists
界面使用多个变量,可以使用:
function addToArtists(artists,...newArtists) {
artists.push(...newArtists);
return artists;
}
上面的脚本修改了作为第一个参数传递的数组,因为数组是JavaScript中的引用类型。
但是,上面建议的功能(无类型检查)几乎是通用的addToArray
功能。因此,从编程风格的角度来看,我将考虑采用更精确的实现,例如:
function addArtist(artists,rank,name,year,album) {
artists.push({rank,album});
return artists;
}
,
如果您一次只需要添加一个新歌手,例如,根据用户在页面上的输入,您可以执行以下操作:
const artists = [{
"rank": 1,"album": "Illmatic"
}
]
function addNewArtist(r,n,y,a) {
artists.push({"rank": r,"name": n,"year": y,"album": a});
}
addNewArtist(3,"Bob",1999,"His new one");
addNewArtist(4,"Joe",2015,"His latest one");
console.log(artists);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。