Создайте опцию выбора в реакции js из объекта

Создайте опцию выбора в реакции js из объектаСоздайте опцию выбора в реакции js из объектаI я новичок в react-redux. Я действительно знаю, что это очень простой вопрос,

Здесь у меня есть объект, похожий на

questionsCount : [ {
    Id : "CSS"
    count: "1",
    level:"Easy",
    type: Non_code},{
    Id : "CSS"
    count: "2",
    level:"Medium",
    type: code},
    {
    Id : "CSS"
    count: "5",
    level:"Tough",
    type: code},
    {
    Id : "java"
    count: "2",
    level:"Tough",
    type: Non-code},
    {
    Id : "Html"
    count: "4",
    level:"Easy",
    type: code},]

Теперь у меня есть одно раскрывающееся меню, в котором я хочу создать параметры, поэтому я попробовал

return this.state.questionsCount.map((item) =>
            <option key = {item.Id}>{item.Id}</option>
        );

 In the props I get the level type.

Итак, вот что создается все элементы option с повторяющимися идентификаторами.

Теперь я хочу, чтобы

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

css code:0,Non_code:1

Итак, в настоящее время он дублируется.

Его дублируют, потому что Id повторяется. Кто-нибудь может мне с этим помочь ? Спасибо

Вот этот предмет у меня. Теперь в этом объекте есть несколько объектов, у которых есть идентификатор, количество, уровень и тип.

Теперь из этих объектов я хочу создать варианты выбора из этого.

Он имеет три уровня различий.

ожидаемый результат будет таким, Будет только легкий уровень

<option>Css code:0,non_code-1></option>
<option>Html code:4,non_code-0></option>

для сложных вариантов,

<option>Css code:5,non_code-1></option>
<option>java code:0,non_code-2></option>

то же самое для средних и жестких.

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

Если код или код не указан, для этого будет 0.

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

Shubham Khatri 13.11.2018 07:18

хорошо добавлю это

ganesh 13.11.2018 07:21

@ShubhamKhatri Я только что обновил свой код

ganesh 13.11.2018 07:31

Одна вещь заключается в том, что в props я получаю props.type, который сообщает, какой тип в данный момент нам нужен для итерации. Я имею в виду легкий или жесткий или средний

ganesh 13.11.2018 07:34

@ShubhamKhatri, ты понял, о чем я хочу спросить?

ganesh 13.11.2018 08:13

откуда вы берете информацию об уровне. также какая комбинация ключей будет уникальной для вашего объекта данных

Shubham Khatri 13.11.2018 08:28

Я передаю его в качестве реквизита компоненту выбора. Комбинация похожа на идентификатор, уровень, тип, это ключи, идентификатор может быть таким же, я имею в виду, что css может иметь простой, средний или жесткий уровень, каждый из которых может иметь код без типа кода.

ganesh 13.11.2018 08:31
Поведение ключевого слова "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
7
305
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

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

processQuestions(questionsCount, difficulty) {
  const res = questionsCount.filter(item => item.level === difficulty);
  return res.reduce((acc, item) => {
     if (acc[item.Id]) {
        acc[item.Id] = { ...acc[item.Id], [item.type]: acc[item.Id][item.type]? acc[item.Id][item.type] + 1 : 1};
     } else {
        acc[item.Id] = { [item.type]: 1};
     }
     return acc;
  }, {})
}
render() {
   const { difficulty } = this.props;
   const questionsData = this.processQuestions(this.state.questionCount, difficulty);
   return Object.entries(questionsData).map(([questionId, data]) => {
        return (
           <option key = {questionId}>{questionId} code: {data.code} non_code: {data['Non-code']}</option>
        ) 
   })
}

@shubhamKhatri спасибо за ваше решение. Работал отлично

ganesh 14.11.2018 11:07

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