Как преобразовать данные объекта в выпадающие параметры?

#javascript #reactjs

#javascript #reactjs

Вопрос:

Я создал два выпадающих списка и получаю исходные данные. Здесь я хочу отобразить список веб-сайтов и магазинов в виде выпадающего списка.

 [
  {
    store: [],
    website: "storeuiteam",
  },
  {
    store: ["MSP_BASE"],
    website: "base",
  },
]
 

Я хочу вариант, подобный:

 const tableDropdownOptions = [
  { value: "website1", label: "website1" },
  { value: "website2", label: "website2" },
];
 

Комментарии:

1. const tableDropdownOptions = [{значение: «website1», метка: «website1»},{значение: «website2», метка: «website2»}]

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

3. пусть WebData=[ { «store»: [], «website»: «storeuiteam» }, { «store»: [ «MSP_BASE» ], «website»: «base» } ] пусть response = []; WebData.map((значение, индекс)=>{ ответ.push({ «ключ»: значение. веб-сайт, «значение»: значение. веб-сайт, }) });

4. вам не нужно arr.push() внутри arr.map(fn) , arr.map() вернет новый массив. const res = [1, 2, 3].map(v => v * 2); // res [2, 4, 6]

Ответ №1:

Это то, что вам нужно? Это в значительной степени совпадает с вашим комментарием без учета количества.

 const response = [{
  "store": [],
  "website": "storeuiteam"
}, {
  "store": ["MSP_BASE"],
  "website": "base"
}]

const options = response.map(item => ({ key: item.website, value: item.website }));

console.log(options) 

Редактировать

Вот фрагмент, который возвращает точно ожидаемый результат

 const response = [{
  "store": [],
  "website": "storeuiteam"
}, {
  "store": ["MSP_BASE"],
  "website": "base"
}]

const options = response.map((_, index) => ({ key: `website${index   1}`, value: `website${index   1}` }));

console.log(options) 

Комментарии:

1. 0: {ключ: «storeuiteam», значение: «storeuiteam»} 1: {ключ: «база», значение: «база»} это ваш результат

2. const tableDropdownOptions = [{значение: «website1», метка: «website1»},{значение: «website2», метка: «website2»}]

3. То есть вам просто нужна строка website с номером?

4. @LavGupta, я отредактировал ответ, чтобы включить предоставленные вами выходные данные