come implementare le classi dei dettagli principali trovare la funzione in javascript?
-
03-07-2019 - |
Domanda
Ho questo codice:
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;
}
E voglio scrivere una funzione per la classe Item che gli do il CategoryId e restituirà tutti gli oggetti item con questo ID categoria,
Qual è il modo migliore per farlo?
Soluzione
Non vedo alcun array ....
Suppongo che ci sarebbe un prototipo di articoli ( nota che non ci sono classi in javascript ) e sarebbe simile a questo:
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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow