Я создаю приложение для реагирования, но наткнулся на то, как извлекать значения из массива, чтобы впоследствии можно было индивидуально стилизовать каждый элемент.
Вот ситуация, В javascript есть массив объектов:
let array = [{a: 1, b: 2, c: 3, d: -1}, {a: 4, b: 5, c: 6, d: -2}, {a: 7, b: 8, c: 9, d: -3}]
Я хочу отобразить массив, чтобы извлечь определенные значения из каждого объекта в массиве.
array.map((object) => {
return <li>{object.a}{object.b}{object.d}</li>
})
Что у меня есть:
Я не могу легко стилизовать отдельные предметы в одну строку. В результате я хочу:
-1
4
Как мне сопоставить массив объектов, чтобы он выводил каждый элемент отдельно



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы используете последнюю версию реакции (16+), вы можете написать ее так, используя React.Fragment:
array.map((object, i) => (
<React.Fragment key = {i}>
<li>{object.a}</li>
<li>{object.b}</li>
<li>{object.d}</li>
</React.Fragment>
))
Для версии React <16 (этот подход будет работать и для 16+) напишите это так:
array.map((object, i) => (
[
<li key = {i}>{object.a}</li>,
<li key = {i+1}>{object.b}</li>,
<li key = {i+2}>{object.d}</li>,
]
))
Примечание: Я использовал индекс как ключ, убедитесь, что вы используете правильные ключи в вашем коде.
Вы можете сделать это:
array.map((object) => {
return <li>{object.a}</li><li>{object.b}</li><li>{object.d}</li>
})
Ох, хорошо. моя вина :(
// ES6
const list = number => `<li> ${number} </li>`;
const mapObject = ({ a, b, d }) => [a, b, d].map(x => list(x))
const reduceList = (acc, next) => acc.concat(next);
array
.map(mapObject)
.reduce(reduceList, []);
// ONE LINER
array
.map(({ a, b, d }) => [a, b, d].map(x => `<li> ${x} </li>`))
.reduce((acc, next) => acc.concat(next), []);
У выражения JSX должен быть ровно 1 родительский узел,