как отобразить объект на основе сопоставления идентификатора объекта с идентификатором, поступающим с сервера

#node.js #angularjs #angular #typescript

#node.js #angularjs #угловой #typescript

Вопрос:

У меня есть массив таких объектов :

в FruitModel.ts

 export interface ColorByFruit{  
    Id : number;
    name : string;
    color : string;
}  
  const Fruits: ColorByFruit[] = [  
     {Id:1, name:"Apple", color:"red"},
     {Id:2, name:"Banana", color:"yellow"}, 
     {Id:3, name:"Peach", color:"Orange"},
     {Id:4, name:"Pineapple", color:"Brown"},
     {Id:5, name:"Blueberry", color:"blue"}, 
]; 
 

в class.ts
Я импортирую интерфейс в класс

затем я получаю данные с сервера, которые включают идентификатор, я хочу сопоставить идентификатор с идентификатором colorFruit, чтобы я мог отобразить название фрукта и цвет.

как мне это сделать?

Комментарии:

1. Вы импортируете интерфейс в conscructor??? Исходя из того, что вы говорите, попробуйте это: const names = ServerFruits.filter(x => Fruits.map(y => y.Id).includes(x.Id)).map(x => x.name);

2. есть ли у вас способ сопоставления идентификаторов. на основе сопоставления вы отображаете имя и цвет?

3. ввод его был неправильным, извините,

4. Пожалуйста, примите ответ, если он решил вашу проблему

Ответ №1:

Для отображения имени и цвета вам просто нужно использовать оператор map.

Предположим, что ваш список фруктов, поступающих с сервера, задан в переменной: ServerFruits

 const nameAndColors = ServerFruits.filter(x => Fruits.map(y => y.Id).includes(x.Id)).map(({Id, name}) => ({Id, name})); 

console.log(nameAndColors );
 

Комментарии:

1. откуда у вас функция фильтра?

2. вы должны отфильтровать Google, и вы получите свой ответ