const user = [
{name:"jonh" ,id:EAD1234},
{name:"peter" ,id:EAD1235},
{name:"matt" ,id:EAD1236},
{name:"henry" ,id:EAD1237},
]
我有上面提到的物件陣列,我想根據使用 es6 和 javascript 的用戶選擇動態獲取選定的用戶 ID,例如,如果我選擇 john,我應該獲得 EAD1234。它必須適合大量記錄
我嘗試使用過濾方法
uj5u.com熱心網友回復:
如果資料很小,那么就組合起來Array.filter()就Array.map()可以了。
如果資料太大,我們可以將資料存盤到資料庫中,例如mysqlor 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)
uj5u.com熱心網友回復:
如果 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;
}
uj5u.com熱心網友回復:
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;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/537349.html
上一篇:PHP按“深度”合并陣列?
