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

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

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

Есть какой то массив с методами, как теперь очистить его чтобы всё свойства и функции остались?
  • Вопрос задан
  • 357 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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