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

Filter objects javascript?

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

Нужно убрать из масива objectToCart если он есть.
  • Вопрос задан
  • 297 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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)

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

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

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