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

Filter objects javascript?

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

Нужно убрать из масива objectToCart если он есть.
  • Вопрос задан
  • 296 просмотров
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 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)

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

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

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