SL-A-SH Ответов: 1

Карте по массиву и вернуть jsx


это.государства.данные =[
{'имя':'Фред','статус':'доступно','возраст':'15','Страна':'Канада'},
{"имя":"Джордж","статус":"недоступен","возраст":"17","страна":"Россия"},
{"имя":"Билл","статус":"недоступен","Возраст":"61","страна":"США"}
];

Я хочу сопоставить этот массив и вернуть html в react

Нравится:

<tr>
  <td>Fred</td>
  <td>Available</td>
  <td>15</td>
  <td>Canada</td>
</tr>
<tr>
  <td>George</td>
  <td>Unavailable</td>
  <td>17</td>
  <td>Russia</td>
</tr>
<tr>
  <td>Bill</td>
  <td>Unavailable</td>
  <td>61</td>
  <td>USA</td>
</tr>


Но ключи массива могут быть любыми. Это может быть совершенно другой массив с разными парами значений ключей. Это не обязательно должно быть имя или статус. Как бы я это сделал?

Что я уже пробовал:

Я не знаю, куда мне идти после этого.

{this.state.data.map((rowData) => {
    let keys = Object.keys(rowData);
})}

1 Ответов

Рейтинг:
0

Gunnar S

data =[
{'name':'Fred','status':'Available','age':'15','country':'Canada'},
{'name':'George','status':'Unavailable','age':'17','country':'Russia'},
{'name':'Bill','status':'Unavailable','age':'61','country':'USA'}
];

data.map((rowData) => { return "<tr>\n" + Object.values(rowData).map(item=> {return " <td>" + item + "</td>\n"}).join(''); + "</tr>\n"}).join('');


Лучшее решение-удалить запятые с помощью join.