[英]adding an object into an array of objects with a function?
我了解將對象添加到數組所需的命令。 我知道它的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, "name": "Nas", "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, name, year, album});
return artists;
}
如果您一次只需要添加一個新藝術家 - 例如,根據用戶在頁面上的輸入,您可以執行以下操作:
const artists = [{ "rank": 1, "name": "Rakim", "year": 1985, "album": "Paid in Full" }, { "rank": 2, "name": "Nas", "year": 1994, "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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.