#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, и вы получите свой ответ