Фильтровать по объекту JSON по ключам

Я пытаюсь отфильтровать этот объект JSON по ключам:

Данные выглядят так

key1: value1
key2: value2
key3: value3
key4: value4
key5: value5
key6: value6
key7: value7
key8: value8
key9: value9

В настоящее время я переименовываю ключи, чтобы они соответствовали этой структуре, а затем пытаюсь их отфильтровать.

    var reassaignedKeys;

    props.data.map((entries, valuesIndex) => {
      reassaignedKeys =  Object.assign({}, {Owner: entries[0], ApplicationId: entries[1], ApplicationName: entries[2], Status: entries[3], DeploymentStatus: entries[4], Classification: entries[5], PersonalBindle: entries[6], PerviouslyCertified: entries[7], Goal: entries[8]})
  
    })
    console.info(reassaignedKeys)   

Этот код выше я использую для переименования ключей. Теперь я не понимаю, как отфильтровать ключ и значение с помощью ключа.

Я знаю, что могу использовать

Object.keys.filter

Но я не получаю желаемых результатов, потому что он продолжает возвращать мне тот же массив.

The data looks like this это не JSON - даже неясно, какова фактическая структура - также нет указаний на то, какие props.data и reassaignedKeys будут значением только последней итерации этого .map
Jaromanda X 17.03.2024 07:28

Пожалуйста, добавьте к своему вопросу любой соответствующий код JavaScript в качестве минимально воспроизводимого примера. Вы можете использовать инструмент фрагмента [<>] на панели инструментов редактирования вопроса, чтобы помочь вам. Вам также следует добавить пример ожидаемого результата.

Andy 17.03.2024 10:35
Поведение ключевого слова "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
2
87
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я не совсем понимаю, чего вы не хотите, но если вы хотите получить пары ключ или ключ-значение и при условии, что ваш JSON верен так.

[{"key1":"value1"},
{"key2":"value2"},
{"key3":"value3"},
{"key4":"value4"},
{"key5":"value5"},
{"key6":"value6"},
{"key7":"value7"},
{"key8":"value8"},
{"key9":"value9"}]

Чем вы можете JSON.parse проанализировать объект JSON to JS и использовать

Чтобы получить ключи

Object.keys(converted_obj_from_json);

Чтобы получить пары ключ-значение

Object.entries(converted_obj_from_json);
Ответ принят как подходящий

Вы можете сделать что-то вроде этого:

const filteredJson = Object.entries(originalJson).reduce((acc,[key,value])=>{
  const isValidKey = key !== 'A' // for exemple
  if (!isValidKey) return acc
  return {
         ...acc,
        [key]:value}
},{})

Вы также можете использовать функции lodash PickBy или omitBy.

Просто получите свои записи с помощью

const entries = data.flatMap(Object.values);

const data = [{"key1":"value1"},
{"key2":"value2"},
{"key3":"value3"},
{"key4":"value4"},
{"key5":"value5"},
{"key6":"value6"},
{"key7":"value7"},
{"key8":"value8"},
{"key9":"value9"}];

const entries = data.flatMap(Object.values);

const reassaignedKeys =  Object.assign({}, {Owner: entries[0], ApplicationId: entries[1], ApplicationName: entries[2], Status: entries[3], DeploymentStatus: entries[4], Classification: entries[5], PersonalBindle: entries[6], PerviouslyCertified: entries[7], Goal: entries[8]});

console.info(reassaignedKeys) 

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