Hi I am usin Angular and I am struggling for an issue. I would like to know How to use "indexOf()" method on a array which has two or more fields. Here is my code:
My array:
[
{
"id":1,
"name": "stuff",
"surname": "stuff"
},
{
"id":2,
"name": "stuff",
"surname": "stuff"
},
{
"id":3,
"name": "stuff",
"surname": "stuff"
}
]
in my angular Code I would like to a user type a certain id from the template(in the form) and check if the corresponding user exists in my array. my angular code is:
<form #formValue="ngForm" (ngSubmit)="onClick(formValue)">
<div class="form-group">
<label for="exampleInputEmail1">Identifiant du challenge</label>
<input type="text" name="_id" #_id="ngModel" [(ngModel)]="this.user._id"
class="form-control" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$"
placeholder="identifiant">
</div>
<input type="submit" value="Submit" class="btn btn-primary"/>
</form>
in my *.ts file I have a method that I perform on the submit event named "onClick" look at my ts file:
onClick(form: NgForm){
this.getUsers(form.value._id)
}
// get users method
getUsers(id: String){
return this._http.get<any[]>(this.url + 'getAllChallenge').subscribe(
(users)=>{
this.users=users;
this.checkExist= this.users.indexOf(id)
if(this.checkExist==-1){
alert("this id you typed doesn't exist in our array")
}
else{
/* here is my issue. this alert if is always printed enven
If I type 1,2 or 3(an
existing id)*/
alert("this Id exist")
}
}
);
}
Thank you in advance!