Задать вопрос
bro-dev
@bro-dev

Как очистить массив не трогая свойства и методы?

var ar = [1, 2, 3];
ar.sum = function() {
    this.reduce(function(a, b) {
        return a + b;
    });
}

Есть какой то массив с методами, как теперь очистить его чтобы всё свойства и функции остались?
  • Вопрос задан
  • 357 просмотров
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Очистить массив, не трогая добавленные свойства и методы:
ar.length = 0

С вашими значениями (вы забыли return в методе sum()):
var ar = [1, 2, 3];
ar.sum = function() {
    return this.reduce(function(a, b) {
        return a + b;
    });
}

ar.length = 0;    // значений больше нет, но метод sum() остался
ar.push(5, 6, 7); // добавляем новые значения
ar.sum()          // 18
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
devellopah
@devellopah
1) зачем нужно очищать массив? Почему-бы просто не создать новый?
2) оффтоп:
не делай так:
ar.sum = function() {
    this.reduce(function(a, b) {
        return a + b;
    });
}


Просто напишу функцию, типа
const sum = arr => arr.reduce((a, b) => a + b)
sum(ar); // 6
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы