javascript 对象数组-获取函数中所选用户名的ID

wpx232ag  于 2022-11-20  发布在  Java
关注(0)|答案(3)|浏览(240)
const user = [
{name:"jonh" ,id:EAD1234},
{name:"peter" ,id:EAD1235},
{name:"matt" ,id:EAD1236},
{name:"henry" ,id:EAD1237},
]

中 的 每 一 个
我 有 上面 提到 的 对象 数组 , 我 想 使用 es6 和 javascript 根据 用户 选择 动态 获取 选定 的 用户 ID , 例如 , 如果 我 选择 john , 我 应该 获得 EAD1234 。 并且 它 必须 适合 大量 记录
我 试 着 用 过滤 法

qzwqbdag

qzwqbdag1#

如果数据量很小,那么只需将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)
of1yzvn4

of1yzvn42#

如果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;
}
tquggr8v

tquggr8v3#

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;

相关问题