У нас есть объект с тремя свойствами, где одно свойство имеет значение null:
let obj = {qwe:1, asd:null, zxc:3};
Ключ с именем «asd» имеет значение null. В нашей задаче ключ «asd» не интересен и мы хотели бы его выбросить из итоговой обработки объекта.
Для начала мы получаем записи самого объекта в виде массивных пар (массив из массивов). Для этого мы используем встроенный в JavaScript конструктор класса Object, в котором есть свой собственный метод entries().
Object.entries(obj)
Когда у нас есть массив из всех возможных пар «ключ/значение«, тогда можно приступать к фильтрации. Мы используем метод filter(), который наследуется всеми экземплярами Array. Внутри функции обработчика мы сравниваем второй элемент массивной пары со значением null.
В качестве оператора сравнения мы используем оператор «не равно«.
Метод filter() будет ходить па каждой массивной паре и отбрасывать те пары, в которых второй элемент (под индексом один) равен null. В итоге мы получим новый массив.
Object.entries(obj).filter(i=>i[1]!=null)
Теперь нам останется вытащить из массивных пар только первые элементы на один уровень нового массива. Извлечение элементов будем осуществлять методом map(), который наследуется всеми экземплярами Array.
Object.entries(obj).filter(i=>i[1]!=null).map(i=>i[0])
По итогу мы получим массив из двух строк:
['qwe', 'zxc']
Это будут имена ключей объекта, в которых значения не равны null.
Теперь можно спокойно писать другую логику для работы с объектом и не учитывать ключи со свойством с null.
Итоговый результат пошаговых преобразований
Информационные ссылки
Стандарт ECMAScript — Раздел «Object.entries ( O )» — https://tc39.es/ecma262/#sec-object.entries
Стандарт ECMAScript — Раздел «Array.prototype.filter ( callbackfn [ , thisArg ] )» — https://tc39.es/ecma262/#sec-array.prototype.filter
Стандарт ECMAScript — Раздел «Array.prototype.map ( callbackfn [ , thisArg ] )» — https://tc39.es/ecma262/#sec-array.prototype.map
Стандарт ECMAScript — Раздел «Equality Operators» — https://tc39.es/ecma262/#sec-equality-operators