簡體   English   中英

object 數組 - 獲取 function 中選定用戶名的 ID

[英]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()即可。

如果數據太大,我們可以將數據存儲到數據庫中,比如mysqlredis ,然后動態查詢

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM