filter
работает только на Array
, но есть кое-что интересное: ваш объект выглядит как массив!
Люди, использующие JavaScript, говорят:
, еслион ходит как утка и крякает как утка, тогда это утка
В этом контексте нечто, действующее как массив, это просто объект с числами в виде ключей плюс a length
свойство.И, наблюдая за вашим объектом, вы просто пропускаете свойство длины!
Давайте добавим свойство length
следующим образом:
entities.length = Math.max(...Object.keys(entities)) + 1; // 4
Затем вы можете преобразовать свой массивоподобный объект в реальныймассив:
const array = Array.from(entities);
И, наконец, вы можете использовать все свои методы Array
, а также фильтр:
array
.filter(p => p.age > 30)
.map((obj, index) => index);