Recherche et affectation d'un objet CategoryApi ayant categoryId
export class CategoryApi {
categoryId: number;
name: string;
}
categories: CategoryApi[];
selectedCategory: CategoryApi;
selectedCategory = categories.findByIndex(2); //looking for categoryApi by categoryId = 2
J'ai trouvé cette option javascript mais TypeScript se plaint de la fonction
var inventory = [
{name: 'apples', quantity: 2},
{name: 'bananas', quantity: 0},
{name: 'cherries', quantity: 5}
];
function findCherries(fruit) {
return fruit.name === 'cherries';
}
console.log(inventory.find(findCherries)); // { name: 'cherries', quantity: 5 }
Il n’existe pas de méthode findByIndex dans JS, la seule méthode est findIndex .
Vous pouvez utiliser le filtre filter ou la méthode find pour obtenir l'élément par index:
// ES2015
selectedCategory = categories.find(item => item.categoryId === 1);
// ES5
selectedCategory = categories.filter(item => item.categoryId === 1)[0];
Vous pouvez utiliser la méthode find:
selectedCategory = categories.find(c => c.categoryApi == 2);
Le problème est que la fonction find
n'est pas listée dans le fichier typings.
Tout d'abord, ignorez le message d'erreur et essayez-le!
Deuxièmement, vous pouvez éditer le fichier de typages:
find
avec filter
et appuyez sur F12 (allez à la déclaration)find
et la valeur renvoyée en objet unique au lieu d'un tableaufilter
en find
dans votre code.