У меня есть ответ как это:

введите описание изображения здесь

Я хочу отобразить имя каждого объекта внутри этого HTML:

{subjects.map((item, i) ={amp}gt; ( {amp}lt;li className="travelcompany-input" key={i}{amp}gt; {amp}lt;span className="input-label"{amp}gt;{ item.name }{amp}lt;/span{amp}gt; {amp}lt;/li{amp}gt; ))} 

Но он выдает ошибку subjects.map is not a function .

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

То, что я тоже попробовал, это:

 {Object.keys(subjects).map((item, i) ={amp}gt; ( {amp}lt;li className="travelcompany-input" key={i}{amp}gt; {amp}lt;span className="input-label"{amp}gt;key: {i} Name: {subjects[i]}{amp}lt;/span{amp}gt; {amp}lt;/li{amp}gt; ))} 

При вызове Object.keys он возвращает массив ключей объекта.

Object.keys({ test: '', test2: ''}) // ['test', 'test2']

Когда вы вызываете Array.map функция принимает 2 аргумента; 1. предмет, 2. указатель.

Когда вы хотите получить данные, вам нужно использовать item вместо

 {Object.keys(subjects).map((keyName, i) ={amp}gt; ( {amp}lt;li className="travelcompany-input" key={i}{amp}gt; {amp}lt;span className="input-label"{amp}gt;key: {i} Name: {subjects[keyName]}{amp}lt;/span{amp}gt; {amp}lt;/li{amp}gt; ))} 

Вы получаете эту ошибку, потому что ваши переменные subjects являются Object не Array , вы можете использовать map() только для Array.

В случае отображения объекта вы можете сделать это:

 { Object.keys(subjects).map((item, i) ={amp}gt; ( {amp}lt;li className="travelcompany-input" key={i}{amp}gt; {amp}lt;span className="input-label"{amp}gt;{ subjects[item].name }{amp}lt;/span{amp}gt; {amp}lt;/li{amp}gt; )) } 

Сопоставьте ключи объекта с помощью Object.keys ():

{Object.keys(yourObject).map(function(key) { return {amp}lt;div{amp}gt;Key: {key}, Value: {yourObject[key]}{amp}lt;/div{amp}gt;; })}

Вы получаете сообщение об ошибке, когда пытаетесь отобразить ключи объекта, или оно выбрасывает что-то еще?

Также обратите внимание, что если вы хотите отобразить ключи, убедитесь, что вы правильно ссылаетесь на ключи объекта. Именно так:

 { Object.keys(subjects).map((item, i) ={amp}gt; ( {amp}lt;li className="travelcompany-input" key={i}{amp}gt; {amp}lt;span className="input-label"{amp}gt;key: {i} Name: {subjects[item]}{amp}lt;/span{amp}gt; {amp}lt;/li{amp}gt; ))} 

Вам нужно использовать {subjects[item]} вместо {subjects[i]} потому что это относится к ключам объекта. Если вы ищете предметы [i], вы получите неопределенное.

 {Object.entries(subjects).map(([key, subject], i) ={amp}gt; ( {amp}lt;li className="travelcompany-input" key={i}{amp}gt; {amp}lt;span className="input-label"{amp}gt;key: {i} Name: {subject.name}{amp}lt;/span{amp}gt; {amp}lt;/li{amp}gt; ))}