Создать функцию JS с библиотекой Lodash
Добрый день команде знатаков. Помогите пожалуйста с решением.
написать функцию, которая убирает из объекта все пустые объекты. Решение можно оформить в двух вариантах - меняется исходный объект, либо функция возвращает новый модифицированный объект без пустых свойств.Lodash/underscore
(мой вариант решения без lodash..
======================/////============
removeEmpty(obj) {
const finalObj = {};
Object.keys(obj).forEach((key) => {
if (obj[key] && typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
const nestedObj = this.removeEmpty(obj[key]);
if (Object.keys(nestedObj).length) {
finalObj[key] = nestedObj;
}
} else if (Array.isArray(obj[key])) {
if (obj[key].length) {
obj[key].forEach((x) => {
const nestedObj = this.removeEmpty(x);
if (Object.keys(nestedObj).length) {
finalObj[key] = finalObj[key] ? [...finalObj[key], nestedObj] : [nestedObj];
}
});
}
} else if (obj[key] !== '' && obj[key] !== undefined && obj[key] !== null) {
finalObj[key] = obj[key];
}
});
return finalObj;
}
=======////====
var object = {
a: {
b: 1,
c: {
a: 1,
d: {},
e: {
f: {}
}
}
},
b: {}
};
Стало:
{
a: {
b: 1
c: {
a: 1
}
}
}