• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

помогите решить задачу на JS

D

DanGenOnX

привет всем, начал изучать js, нашел задачку по обьектам и немного запутался. немногли бы вы обьяснить как решать.
  • Создать объект Product с полями type, price, name;
  • Создать объект ProductsManager, который будет реализовывать следующие методы:
    • add(product) - добавляет продукт,
    • remove(name) - удаляет продукт из хранилища по имени,
    • getAll() - возвращает все объекты хранилища,
    • removeAll() - удаляется все объекты хранилища.
  • Внутри ProductsManager хранится массив;
 

Bypass

Green Team
02.02.2018
451
579
BIT
0
привет всем, начал изучать js, нашел задачку по обьектам и немного запутался. немногли бы вы обьяснить как решать.
  • Создать объект Product с полями type, price, name;
  • Создать объект ProductsManager, который будет реализовывать следующие методы:
    • add(product) - добавляет продукт,
    • remove(name) - удаляет продукт из хранилища по имени,
    • getAll() - возвращает все объекты хранилища,
    • removeAll() - удаляется все объекты хранилища.
  • Внутри ProductsManager хранится массив;
 
  • Нравится
Реакции: sinner67

sinner67

Green Team
24.03.2017
279
358
BIT
0
Тут время появилось свободное. Я бы так сделал:
JavaScript:
function Product(type, price, name) {
    this.type = type;
    this.price = price;
    this.name = name;
}

function ProductsManager() {
    this.products = [];
 
    this.add = function(product) {
        this.products.push(product);
    }
 
    this.remove = function(name) {
        for(var i = 0; i < this.products.length; i++){
            if(this.products[i].name == name){
                this.products.splice(i, 1);
                break;
            }
        }
    }
 
    this.getAll = function() {
        var result = [];
        for(var key in this.products){
            result.push(JSON.stringify(this.products[key]));
        }
     
        return result;
    }
 
    this.removeAll = function() {
        this.products = [];
    }
}

var p = new ProductsManager();

p.add(new Product("1", 200, "first"));
p.add(new Product("2", 200, "two"));
p.add(new Product("3", 200, "three"));
alert(p.getAll());

Отпишитесь кто шарит в чем косяки, ради интереса, я просто не уверен в том что везде нужен этот this.
Или может проще можно сделать? Всегда интересно было смотреть на опытных, как они умудрялись в две три строки уместить то, что у меня уходит в 10))
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!