Задать вопрос
@bee2015

Filter objects javascript?

Всем привет! Скажите пожалуйста почему фильтр js применяется только один раз, то есть, если есть боль ше двух одинаковых объектов он их игнорирует ??
function isTrue(value, ind, h) {
                return h[ind] !== objectToCart;
            }
            var filtered = newOb.filter(isTrue);
            console.log(filtered)
objectToCart - объект, который надо убрать

Нужно убрать из масива objectToCart если он есть.
  • Вопрос задан
  • 299 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
tema_sun
@tema_sun
В Js два объекта будут одинаковы только в том случае, если они указывают на один и тот же объект.
Если же будет что-то такое:
var obj1 = {a: 1};
var obj2 = {a: 1};

,то эти два объекта не будут одинаковы, и их сравнение вернет false.

В вашем случае, если .filter() не видит "одинаковые" объекты - это значит, что они не одинаковые.
Если ваши объекты имеют простую json структуру, то проще всего сравнить их строковое представление:
return JSON.stringify(h[ind]) !== JSON.stringify(objectToCart)

но в этом случае нужно учесть, что порядок значений важен.
Ответ написан
Ваш ответ на вопрос

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

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