• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

  • Автор темы Автор темы DanGenOnX
  • Дата начала Дата начала
  • Теги Теги
    javascript
D

DanGenOnX

привет всем, начал изучать js, нашел задачку по обьектам и немного запутался. немногли бы вы обьяснить как решать.
  • Создать объект Product с полями type, price, name;
  • Создать объект ProductsManager, который будет реализовывать следующие методы:
    • add(product) - добавляет продукт,
    • remove(name) - удаляет продукт из хранилища по имени,
    • getAll() - возвращает все объекты хранилища,
    • removeAll() - удаляется все объекты хранилища.
  • Внутри ProductsManager хранится массив;
 
привет всем, начал изучать js, нашел задачку по обьектам и немного запутался. немногли бы вы обьяснить как решать.
  • Создать объект Product с полями type, price, name;
  • Создать объект ProductsManager, который будет реализовывать следующие методы:
    • add(product) - добавляет продукт,
    • remove(name) - удаляет продукт из хранилища по имени,
    • getAll() - возвращает все объекты хранилища,
    • removeAll() - удаляется все объекты хранилища.
  • Внутри ProductsManager хранится массив;
 
  • Нравится
Реакции: sinner67
Тут время появилось свободное. Я бы так сделал:
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))
 
Последнее редактирование:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab