Карта внутри значения карты

#javascript #reactjs #dictionary

#язык JavaScript #реагирует на #словарь

Вопрос:

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

 const data = [{id: "111", name: "Danny", city: "NYC"},  {id: "222", name: "Roni", city: "LDN},   {id: "333", name: "Suzi", city: "TLV",  {id: "444", name: "John", city: "SF"}  ] const config = [{fieldToShow: "name"}]    lt;tbodygt;  {data.map((row) =gt; {  return (  lt;trgt;  {config.map((value) =gt; {  return lt;tdgt;{row[value.field]}lt;/tdgt;;  })}  lt;/trgt;  );  })}  

но это не сработает …

Ответ №1:

У вашего объекта конфигурации есть ключ fieldToShow :

 const config = [{fieldToShow: "name"}]  

пока вы пытаетесь получить ключ field на своей карте. Вы меняете эту строку:

 return lt;tdgt;{row[value.field]}lt;/tdgt;;  

к этому:

 return lt;tdgt;{row[value.fieldToShow]}lt;/tdgt;;  

Ответ №2:

ты можешь сделать вот так:

 export default function Test() {  const data = [  { id: '111', name: 'Danny', city: 'NYC' },  { id: '222', name: 'Roni', city: 'LDN' },  { id: '333', name: 'Suzi', city: 'TLV' },  { id: '444', name: 'John', city: 'SF' },  ];  const config = [{ fieldToShow: 'name' }];   return (  lt;tbodygt;  {data.map((row) =gt; (  lt;trgt;  {data.map((row) =gt; (  lt;trgt;  {config.map((value) =gt; (  lt;tdgt;{row[value.fieldToShow]}lt;/tdgt;  ))}  lt;/trgt;  ))}  lt;/trgt;  ))}  lt;/tbodygt;  ); }