我有一個這樣的陣列。

我只需要 branchId。所以我使用 filter 方法來過濾這個陣列并將 branchId 存盤在反應狀態。
const [branchID,setBranchID]=React.useState([]);
const tempTwo=[
{
branchId: "61b25e0ae177d62ce4cb3b47",
branchName: "Shopzier Malabe Branch"
},
{
branchId: "61aa4f802aed6f0022102a99"
branchName: "Test Branch New Update"
},
{
branchId: "619f346f17b5522b184d5c01",
branchName: "Shopzier Main Branch Update Trest12"
}
]
React.useEffect(()=>{
setBranchID([...tempTwo.filter(item=>item.branchId)])
},[])
但是當我控制臺 log branchID 時,它會列印我的完整陣列,而不僅僅是 branchID。如何從我的物件陣列中過濾 branchID。我不知道出了什么問題,為什么會發生這種情況。如果有人能幫助我解決這個問題,我真的很感激。謝謝。
uj5u.com熱心網友回復:
我認為您誤解了過濾器功能的實際作用。
您應該使用 map 運算子從陣列中提取屬性,如下所示:
React.useEffect(()=>{
setBranchID([...tempTwo.map(item=>item.branchId)])
},[])
uj5u.com熱心網友回復:
Filter用于過濾出與給定條件匹配的所有物件,在您的情況下,具有 id。要僅從串列中獲取 id,您需要使用map
const idList = tempTwo.map(item=> item.branchId)
uj5u.com熱心網友回復:
這樣做的簡單方法。您可以使用 map 函式和 matchId 從陣列中提取資料來執行此操作。
const [branchID,setBranchID]=React.useState("");
const tempTwo=[
{
branchId: "61b25e0ae177d62ce4cb3b47",
branchName: "Shopzier Malabe Branch"
},
{
branchId: "61aa4f802aed6f0022102a99"
branchName: "Test Branch New Update"
},
{
branchId: "619f346f17b5522b184d5c01",
branchName: "Shopzier Main Branch Update Trest12"
}
]
React.useEffect(()=>{
tempTwo.map((branchData, i) => {
//match your branch id value
if (branchData.branchId === some_id) {
setBranchID(branchData.branchId)
}
})
},[])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395611.html
標籤:javascript 数组 反应 目的
