Добавление значений к объекту во время итерации данных

У меня есть набор JSON, который мне нужно перебрать, поскольку мне по сути нужно создать строку, содержащую в ней определенные идентификаторы. В настоящий момент я отображаю данные, а затем список стимулов. (У меня есть индекс, который из события, поскольку мне нужны только данные из этого индекса).

У меня проблема в том, что cell_id всегда один и тот же. И мне нужно создать строку.

      const key = `cell_Id${cell_id}:step_Id${item.step_id}:study_id${studyId}:stim_id${item.stimulus_id}`

Я подозреваю, что мне нужно что-то добавить к объекту, когда я взаимодействую с данными - как лучше всего это сделать?

Благодарность

Вот JSON

{
  "study_id": 16,

  "data": [
    {
      "cell_id": 23,
      "stimulus_list": [
        {

          "stimulus_id": 96,
          "step_id": 62

        }
      ]
    },
    {
      "cell_id": 24,
      "stimulus_list": [
        {
          "stimulus_id": 95,
          "step_id": 61

        }
      ]
    }
  ]
}

 data
      .map(item => item.stimulus_list)
      .map(item => item[index]);

Ваше требование неясно. Пожалуйста, перефразируйте. Также предоставьте ожидаемый результат

Nikhil Aggarwal 11.06.2018 12:51
Поведение ключевого слова "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
1
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете иметь вложенную карту поверх данных, а затем сгладить результат с помощью команды reduce.

const obj = {
  "study_id": 16,

  "data": [
    {
      "cell_id": 23,
      "stimulus_list": [
        {

          "stimulus_id": 96,
          "step_id": 62

        }
      ]
    },
    {
      "cell_id": 24,
      "stimulus_list": [
        {
          "stimulus_id": 95,
          "step_id": 61

        }
      ]
    }
  ]
}

 const res = obj.data
      .map(item => {
      return [].concat(item.stimulus_list.map(stimulus => `cell_Id${item.cell_id}:step_Id${stimulus.step_id}:study_id${obj.study_id}:stim_id${stimulus.stimulus_id}`))
}).reduce((acc, item) => {
   acc = acc.concat(item)
   return acc;
}, [])
console.info(res)

Спасибо, это прекрасно

marcuspetty 11.06.2018 13:39

Рад, что помог

Shubham Khatri 11.06.2018 13:40

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