Все это также поможет вам удалить вложенные нулевые элементы.Использование некоторого ES6 / ES2015: ниже приведен пример, в котором будет изменен объект данных напрямую или, если вы захотите создать дублированный объект с удаленными нулями, вы можете вызвать функции, указанные ниже, он вернет новый объект.
Если вам не нравитсясоздайте дополнительную функцию и удалите элементы «inline».
Object.keys(data).forEach(k => (!data[k] && data[k] !== undefined) && delete data[k]);
То же самое, написанное как функция.
const removeEmpty = (data) => {
Object.keys(data).forEach((k) => (!data[k] && data[k] !== undefined) && delete
data[k]);
return data;
};
Эта функция также использует рекурсию для удаления элементов из вложенных объектов:
const removeEmpty = (data) => {
Object.keys(data).forEach(k =>
(data[k] && typeof data[k] === 'object') && removeEmpty(data[k]) ||
(!data[k] && data[k] !== undefined) && delete data[k]
);
return data;
};
То же, что и ранее, но с ES7 / 2016 Object.entries:
const removeEmpty = data => {
Object.keys(data).forEach(
k => !data[k] && data[k] !== undefined && delete data[k]
);
return data;
};
То же, что и в третьем примере, но в простом ES5:
function removeEmpty(data) {
Object.keys(data).forEach(function(key) {
(data[key] && typeof data[key] === 'object') && removeEmpty(data[key]) ||
(data[key] === '' || data[key] === null) && delete data[key]
});
return data;
};