Angular 2 - find instance in array

ぃ、小莉子 提交于 2019-12-24 09:54:20

问题


Im building a dummy login for an app, and I need to check for an instance of the user logging in, within an array

I have some mock data

import { User } from './user';

export const USERS: User[] = [
  {username: 'Seth', password: 'youwillneverknow'},
  {username: 'Peter', password: 'iforgot'},
  {username: 'Frank', password: 'test123'},
];

Which I use in my user.service file

import { Injectable } from '@angular/core';
import { User } from './user';
import { USERS } from './users.mock';

@Injectable()
export class UserService {
  getUsers(): Promise<User[]> {
    return Promise.resolve(USERS);
  }

  <some method here>

}

and in my component I need to write a method checking if the user exists in the array.

  logIn(value: string): void {

  }

The string value comes from a input field in my HTML

I need some input on how to check for an instance of that username when calling the logIn function


回答1:


To find an instance of an array use:

users.find(x => x.username == value);

This will return the object in the USER array that with the matching user name. It will return undefined if it doesn't exist.

You can also use findIndex, which will return the index of the item in the array that matches the predicate or -1 if it doesn't exist:

users.findIndex(x => x.username == value);

As for having a list of usernames and passwords, this is definitely not recommended authentication. I hope you are doing something else for a production application.



来源:https://stackoverflow.com/questions/43157794/angular-2-find-instance-in-array

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!