這是我的 Json 資料
{
"LoginData": [
{
"name": "Nick",
"password": "123",
"role": "employee"
},
{
"name": "Ratan",
"password": "123",
"role": "manager"
},
{
"name": "Rahul",
"password": "123",
"role": "admin"
}
]
}
通過使用帶有名稱的檔案管理器方法,我獲取特定資料并將其存盤在變數 userData
[{名稱:'Rahul',密碼:'123',角色:'admin'}]
但是我無法使用它給出的 userData.role 訪問它的角色 undefined
我應該做些什么改變才能給我 userData.role === "admin"
uj5u.com熱心網友回復:
當你使用filter函式時,你會得到array輸出。你應該考慮使用find方法。
另外,我建議您在 MDN Docs 上了解陣列方法。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
uj5u.com熱心網友回復:
根據檔案,Array#filter回傳:
包含通過測驗的元素的新陣列。如果沒有元素通過測驗,將回傳一個空陣列。
因此,您需要先訪問回傳陣列中的第一個元素:
const data = {
"LoginData": [
{ "name": "Nick", "password": "123", "role": "employee" },
{ "name": "Ratan", "password": "123", "role": "manager" },
{ "name": "Rahul", "password": "123", "role": "admin" }
]
}
const userData = data.LoginData.filter(({ name }) => name === 'Rahul');
const role = userData[0]?.role;
console.log(role);
如果總是最多匹配一項,Array#find這里會更好:
const data = {
"LoginData": [
{ "name": "Nick", "password": "123", "role": "employee" },
{ "name": "Ratan", "password": "123", "role": "manager" },
{ "name": "Rahul", "password": "123", "role": "admin" }
]
}
const userData = data.LoginData.find(({ name }) => name === 'Rahul');
const role = userData?.role;
console.log(role);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/405607.html
標籤:
下一篇:JS中的錯誤“UncaughtTypeError:Cannotsetpropertiesofnull(setting'innerHTML')atcall.html:10:58”
