¿Cómo implementar clases de detalles maestros encontrar la función en javascript?

StackOverflow https://stackoverflow.com/questions/801888

  •  03-07-2019
  •  | 
  •  

Pregunta

Tengo este código:

    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;
}

Y quiero escribir una función para la clase de artículo que le doy el ID de categoría y devolverá todos los objetos de artículos con este ID de categoría,
¿Cuál es la mejor manera de hacerlo?

¿Fue útil?

Solución

No veo ninguna matriz ....

Supondría que habría un prototipo de elementos ( tenga en cuenta que no hay clases en javascript ), y se vería así:

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top