簡體   English   中英

使用函數將對象添加到對象數組中?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM