как реализовать функцию поиска классов Master details в javascript?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть этот код:

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

И я хочу написать функцию для класса Item, которой я присвою CategoryID, и она вернет все объекты items с этим идентификатором категории,
Каков наилучший способ сделать это?

Это было полезно?

Решение

Я не вижу никакого массива....

Я бы предположил, что там будет прототип items (обратите внимание, что в javascript нет классов), и это выглядело бы примерно так:

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top