[英]Array of object - get id for selected user name inside function
const user = [
{name:"jonh" ,id:EAD1234},
{name:"peter" ,id:EAD1235},
{name:"matt" ,id:EAD1236},
{name:"henry" ,id:EAD1237},
]
我有上面提到的 object 數組,我想根據使用 es6 和 javascript 的用戶選擇動態獲取選定的用戶 ID,例如,如果我是 select john,我應該得到 EAD1234。 它必須適合大量記錄
我嘗試使用過濾方法
如果 id 值是唯一的,則無需過濾整個數組:
function getUserByID(id, users) {
for (const u of users) {
if (u.id === id) {
return u;
}
}
return null;
}
如果您的數據確實非常大並且將其存儲在前端是有意義的,請考慮使用IndexedDB 。
編輯:有人在某處的評論中提到了Array.prototype.find() ,因此您不妨使用內置的。
function getUserByID(id, users) {
return users.find((u) => u.id === id) || null;
}
如果數據很小,那么只需結合Array.filter()
和Array.map()
即可。
如果數據太大,我們可以將數據存儲到數據庫中,比如mysql
或redis
,然后動態查詢
const user = [ {name:"jonh",id:'EAD1234'}, {name:"peter",id:'EAD1235'}, {name:"matt",id:'EAD1236'}, {name:"henry",id:'EAD1237'} ] let id = 'EAD1234' let result = user.filter(u => u.id === id).map(u => u.name) console.log(result)
const user = [
{name:"john" ,id:'EAD1234'},
{name:"peter" ,id:'EAD1235'},
{name:"matt" ,id:'EAD1236'},
{name:"henry" ,id:'EAD1237'},
];
let userName = "john";
let userId = user.filter(user => user.name === userName)[0].name;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.