這可能很容易,但給我帶來了麻煩。鑒于此 JSON 結構:
"playlists" : [
{
"id" : "1",
"owner_id" : "2",
"song_ids" : [
"8",
"32"
]
},
{
"id" : "2",
"owner_id" : "3",
"song_ids" : [
"6",
"8",
"11"
]
},
{
"id" : "3",
"owner_id" : "7",
"song_ids" : [
"7",
"12",
"13",
"16",
"2"
]
}
]
你將如何通過鍵/值從陣列中洗掉一個物件?在這種情況下通過ID?播放串列.拼接(1,1)?播放串列.洗掉(id)?不知道如何優雅地做到這一點。假設我想洗掉 ID = 3 的元素,如何得到這個結果:
"playlists" : [
{
"id" : "1",
"owner_id" : "2",
"song_ids" : [
"8",
"32"
]
},
{
"id" : "2",
"owner_id" : "3",
"song_ids" : [
"6",
"8",
"11"
]
}
]
uj5u.com熱心網友回復:
使用Array.filter,您可以過濾掉與特定條件不匹配的元素。例如:
const result = playlists.filter(playlist => playlist.id !== '2');
這是一個作業演示:
/* Example Data */
const playlists = [
{
"id" : "1",
"owner_id" : "2",
"song_ids" : [ "8", "32"]
},
{
"id" : "2",
"owner_id" : "3",
"song_ids" : ["6", "8","11" ]
}
];
/* Takes a list of playlists, and an ID to remove */
const removePlaylistById = (plists, id) =>
plists.filter(playlist => playlist.id !== id);
/* Removes playlist ID 2 from list, prints result */
const result = removePlaylistById(playlists, '2');
console.log(result);
另一種選擇是用于Array.findIndex獲取具有給定 ID 的元素的索引,然后用于Array.splice洗掉該元素。這將修改陣列,而不需要副本。
例如:
const indexToRemove = playlists.findIndex((pl) => pl.id === '2');
playlists.splice(indexToRemove, 1);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/459020.html
標籤:javascript 节点.js 反应 json ecmascript-6
