comment implémenter les classes de détails maîtres trouver une fonction en javascript?
-
03-07-2019 - |
Question
J'ai ce code:
function Item(id, itemType, itemData, itemCategoryId, itemRank) {
this.id = id;
this.itemType = itemType;
this.itemData = itemData;
this.itemCategoryId = itemCategoryId;
this.itemRank = itemRank;
}
function Category(id) {
this.id = id;
}
Et je veux écrire une fonction pour la classe Item à laquelle je lui donne le CategoryId et elle retournera tous les objets items avec cet identifiant de catégorie,
Quel est le meilleur moyen de le faire?
La solution
Je ne vois aucun tableau ....
Je suppose qu'il existe un prototype d'éléments ( notez qu'il n'y a pas de classes en javascript ), et que cela ressemblerait à ceci:
function Item(id, categoryId, data, rank) {
this.id = id;
this.categoryId = categoryId;
this.data = data;
this.rank = rank;
}
function Items() {
this.items = [];
this.findByCategory = function(categoryId) {
var result = [];
for(var i=0;i<this.items.length;i++) {
if (categoryId == this.items[i].categoryId)
result.push(this.items[i]);
}
return result;
}
this.add = function(id, categoryId, data, rank) {
this.items.push(new Item(id, categoryId, data, rank));
}
}
var items = new Items();
items.add(2, 0, null, null);
items.add(1, 1, null, null); // I'm not going to care about data and rank here
items.add(2, 1, null, null);
items.add(3, 1, null, null);
items.add(4, 2, null, null);
items.add(5, 3, null, null);
var cat1 = items.findByCategory(1);
alert(cat1); // you will get a result of 3 objects all of which have category 1
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow