Как удалить вложенный ключ из объекта json?

#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]);
            }
        });
    }
}
 

Рекурсивно удаляет начальный и конечный ключи во всех вложенных объектах.