В Js два объекта будут одинаковы только в том случае, если они указывают на один и тот же объект.
Если же будет что-то такое:
var obj1 = {a: 1};
var obj2 = {a: 1};
,то эти два объекта не будут одинаковы, и их сравнение вернет false.
В вашем случае, если .filter() не видит "одинаковые" объекты - это значит, что они не одинаковые.
Если ваши объекты имеют простую json структуру, то проще всего сравнить их строковое представление:
return JSON.stringify(h[ind]) !== JSON.stringify(objectToCart)
но в этом случае нужно учесть, что порядок значений важен.