Удалить конкретное или выбранное свойство из данных json. Я не хочу удалять все пары значений ключа, только те, у которых категория: null

Это мои данные json, и я хотел удалить категорию с нулевым значением из моего json.

Я имею в виду не удалять "Category":"start", а удалять "Category":null.
Я видел несколько ответов по этому поводу, но он удаляет всю категорию, включая "Category":"start", которую я не хочу.

"First": [{
        "category": "Start",
        "name": "Start",
        "key": 1,
        "lastname": "xyz"
    }, {
        "category": null,
        "text": "Step",
        "key": 2,
        "lastname": "xyz"
    }, {
        "category": null,
        "text": "Condition",
        "key": 3,
        "loc": "xyz"
    }

Прокрутите массив, проверьте, является ли categorynull (например, obj === null), и если да, то delete из объекта. Заглавные буквы имеют значение, вы говорите "Category":"start", но есть "category": "start", убедитесь, что используете одинаковую заглавную букву

CertainPerformance 31.05.2019 08:48

почему вы хотите удалить его из JSON, я предполагаю, что вы где-то используете этот JSON, вам нужно просто использовать тот, у которого есть «категория»: «начало» и игнорировать другие. Может быть, я смогу дать вам лучший ответ, если вы скажете, что вы хотите сделать?

Zabih Ullah 31.05.2019 08:51

да, вы сказали правильно, но я собираюсь использовать его для некоторой предопределенной модификации API, и для меня невозможно сделать то же самое с этой стороны. Так что я иду по этому пути. Спасибо @ZabihUllah

Ricky 31.05.2019 08:56
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

См. код ниже. Это даст вам ожидаемый результат.

const array = [{
  "category": "Start",
  "name": "Start",
  "key": 1,
  "lastname": "xyz"
}, {
  "category": null,
  "text": "Step",
  "key": 2,
  "lastname": "xyz"
}, {
  "category": null,
  "text": "Condition",
  "key": 3,
  "loc": "xyz"
}];

const list = array.map(item => {
  let object = item;
  [undefined, null].includes(object.category) && delete object.category;
  return object;
});

console.info(list);

Я использовал ответ, предоставленный Махиром Али, но ваш ответ также полезен, большое спасибо @Ken Ryan Labso

Ricky 31.05.2019 09:43
Ответ принят как подходящий

Вы можете использовать map() и деструктуризацию параметров функции.

const arr = [{ "category": "Start", "name": "Start", "key": 1, "lastname": "xyz" }, { "category": null, "text": "Step", "key": 2, "lastname": "xyz" }, { "category": null, "text": "Condition", "key": 3, "loc": "xyz" } ]

const res = arr.map(({category,...rest}) => category === null ? {...rest} : {category,...rest})
console.info(res)

Аналогичным образом, если я хочу добавить новый атрибут, скажем, где «ключ»: «2», что мне делать?? @ Махир Али

Ricky 31.05.2019 09:50

Другие вопросы по теме