Спасибо за видео и интересную задачку! 👍 Рубрика с тремя вариантами решения мне всё таки нравилась больше. Надеюсь, что она ещё вернётся. 🤔 Тоже попробовал решить эту задачку. Вот, что получилось: function compactValid(value) { return typeof value === 'object' ? compactObject(value) : value; } function compactObject(obj) { if (Array.isArray(obj)) { return obj.filter(Boolean).map(compactValid); } return Object.entries(obj).reduce((acc, [key, value]) => { if (value) acc[key] = compactValid(value); return acc; }, {}); }
Приходите учиться на наш интенсивный курс по веб-разработке на JavaScript!
go.elbrusboot.camp/44my
Спасибо за видео и интересную задачку! 👍 Рубрика с тремя вариантами решения мне всё таки нравилась больше. Надеюсь, что она ещё вернётся.
🤔 Тоже попробовал решить эту задачку. Вот, что получилось:
function compactValid(value) {
return typeof value === 'object'
? compactObject(value)
: value;
}
function compactObject(obj) {
if (Array.isArray(obj)) {
return obj.filter(Boolean).map(compactValid);
}
return Object.entries(obj).reduce((acc, [key, value]) => {
if (value) acc[key] = compactValid(value);
return acc;
}, {});
}
Можно решить ещё и так:
const compactObject = (obj) => {
const serializedObj = JSON.stringify(obj, (key, value) =>
Array.isArray(value) ? value.filter(Boolean) : value || undefined);
return JSON.parse(serializedObj);
};
Если видео записывалось одни дублем, то почему склейки есть, а если нет, то это уже не 10 мин
А если смотреть на x2, то это уже почти 5 минут :) Вы бы предпочли следующие выпуски такого формата без монтажа?