Как найти имя свойства объекта по его идентификатору - PullRequest
0 голосов
/ 11 марта 2020

У меня есть простые json данные, мне нужно получить имя от объекта путем сравнения его идентификатора. Предположим, у меня есть номер 2, мне нужно сравнить с идентификатором объекта, если он равен 2, то мне нужно получить соответствующее свойство объекта 'name' из объекта. Как и здесь, оно будет соответствовать имени 'dog' в моем json. Вот код ниже https://stackblitz.com/edit/angular-dtyvrc?file=src%2Fapp%2Fapp.component.ts

app.component. html

<hello name="{{ name }}"></hello>
<p>
  Start editing to see some magic happen :)
</p>

app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular';
  ngOnInit() {
  let statusdata1 = [{"id":1,"name":"cat"},{"id":2,"name":"dog"}]
  console.log('dog')
  }
}

Ответы [ 6 ]

0 голосов
/ 11 марта 2020

Ниже приведен код, который нужно добавить в app.component.ts

  result: any; // variable to hold name for mathched id
  idToCompare = 2; // id to comapre from array 

  ngOnInit() {
   let statusdata1 = [{"id":1,"name":"cat"},{"id":2,"name":"dog"}]

   this.result = statusdata1.find(x => x.id === this.idToCompare).name;
   console.log(this.result); // result will be dog
 }

app.component. html

<p>Name of compared id found result:-><b> {{result}}</b> </p>

Ниже приведен обновленный URL для рабочего примера Как найти имя свойства объекта, сопоставив его идентификатор

Надеюсь, это поможет.

0 голосов
/ 11 марта 2020

попробуй вот так

 const data = statusdata1.find(x => x.id === 2)?.name;
0 голосов
/ 11 марта 2020

Таким способом вы можете получить свой вывод.

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  name = 'Angular';
  ngOnInit() {
    let statusdata1 = [{ id: 1, name: "cat" }, { id: 2, name: "dog" }];
    console.log("dog");
    let value = this.getName(statusdata1, 2)
    alert(value);
  }
  getName(dataList, id) {
    let data = dataList.find(a => a.id == 2);
    if (!!data) {
      return data.name;
    }
  }
}
0 голосов
/ 11 марта 2020
statusdata1.find(x => x.id === 2)?.name;
0 голосов
/ 11 марта 2020
objName: any = "";// declare it as a global variable
id=2;
statusdata1.forEach((obj)=>{if(obj["id"]==id)objName=obj["name"]});
console.log(objName);
0 голосов
/ 11 марта 2020

Использовать Array find

let statusdata1 = [{"id":1,"name":"cat"},{"id":2,"name":"dog"}] 

let foo = statusdata1.find(x => x.id === matchingId)

console.log(foo)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...