#javascript
#javascript
Вопрос:
У меня есть объект JSON с ключами «start» и «end» внутри на всех уровнях.
Я хочу, чтобы в объекте не было ключей и значений «start» и «end».
как это сделать? Я пытаюсь использовать omit
форму lodash
, но она удаляется только на первом уровне, поэтому этого решения недостаточно.
{
"type": "...",
"start": 0,
"end": 93,
"items": [
{
"type": "...",
"start": 0,
"end": 93,
"more": {
"type": "...",
"start": 0,
"end": 93,
Комментарии:
1. вы пробовали рекурсивное решение?
Ответ №1:
как насчет этого?
o = JSON.parse(
JSON.stringify(o, (key, value) => {
if (key === "start" || key === "end") return undefined;
return value;
})
);
Ответ №2:
Вы можете попробовать что-то вроде этого
function removeKeys(obj) {
if (obj amp;amp; Object.keys(obj).length) {
delete obj.start;
delete obj.end;
Object.keys(obj).forEach(key => {
if (Array.isArray(obj[key])) {
obj[key].forEach(removeKeys);
} else if (obj[key] !== null amp;amp; typeof obj[key] === 'object' ) {
removeKeys(obj[key]);
}
});
}
}
Рекурсивно удаляет начальный и конечный ключи во всех вложенных объектах.