Как анализировать неизвестные объекты JSON в JavaScript

Я пытаюсь понять, как я буду анализировать следующую информацию:

{
  'unknown-value': {
    name: 'AB',
    id: 'BLUE'
  },
  'unknown-value': {
    name: 'AC',
    id: 'PURPLE'
  }
}

Желая проанализировать их, создайте массив значений, подобных этим:

names = ['AB', 'AC']
ids = ['BLUE', 'PURPLE']

Не сталкивался с чем-то подобным, где это не массив объектов, поэтому я немного в тупике, что делать.

вы пробовали Object.values ​​?

Nina Scholz 25.12.2020 14:22
Поведение ключевого слова "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) для оценки ваших знаний,...
2
1
1 401
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий
  • Вы можете перебирать свой массив объектов с помощью forEach
  • Затем получите значения объекта с помощью Object.values().
  • Затем вы можете перейти с forEach к этим значениям и в этом случае вставить их в выделенные имена массивов или идентификаторы.

   
const obj = [{
  'unknown-value': {
    name: 'AB',
    id: 'BLUE'
  },
  'unknown-value2': {
    name: 'AC',
    id: 'PURPLE'
  }
}]

let names = [];
let ids = [];

obj.forEach((x) => { 
Object.values(x).forEach((y)=>{
  names.push(y.name);
  ids.push(y.id);
 })
})

console.info(names);
console.info(ids);

Вам также может понадобиться этот неизвестный ключ, так что Object.entries — ваш друг:

const normalized = Object.entries(obj).map(([key, value]) => ({key, ...value}));

Теперь normalized содержит массив объектов, каждый из которых имеет новое свойство «ключ», которое содержит ключ.

Как бы просто это ни было, попробуйте этот подход, и вы получите желаемый результат.

object = {
  'unknown-value': {
    name: 'AB',
    id: 'BLUE'
  },
  'unknown-value': {
    name: 'AC',
    id: 'PURPLE'
  }
};

names = [];
ids = [];

for (key in object) {
    names.push(object[key].name);
    ids.push(object[key].id);        
}

for (value of names) {
    console.info(value);
}

for (value of ids) {
    console.info(value);
}

const { names, ids, } = Object.values({

  'foo': {
    name: 'AB',
    id: 'BLUE',
  },
  'bar': {
    name: 'AC',
    id: 'PURPLE',
  }
}).reduce((map, item) => {

  map.names.push(item.name)
  map.ids.push(item.id)

  return map;

}, { names: [], ids: [] });

console.info('names :', names);
console.info('ids :', ids);
.as-console-wrapper { min-height: 100%!important; top: 0; }

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