Вы можете создать новый список, назначив функцию для каждого элемента списка.
Пример: y
создается путем сопоставления n => n + 1
для каждого элемента x
:
const x = [10, 20, 30];
const y = x.map(n => n + 1);
x;
//=> [10, 20, 30]
y;
//=> [11, 21, 31]
Вы также можете превратить список вещей в список других вещей: x
- это список чисел, а y
- это список строк.
const x = [1, 2, 3];
const y = x.map(n => '?'.repeat(n));
y;
//=> ["?", "??", "???"]
В вашем случае вам нужно превратить список n объектов в список n × 2 строк. (Каждый объект «производит» две строки; имя и фамилию)
Для этого нам нужно использовать Array#flatMap
, который отображает функцию на каждый элемент списка и flatten результат функции в новом списке.
Простой пример прояснит все это:
const x = ['?', '?'];
const y = x.flatMap(n => [n, n]);
y;
//=> ["?", "?", "?", "?"]
Теперь давайте решим вашу проблему!
const y = x.flatMap(({firstName, lastName}) => [firstName, lastName]);
console.log(y);
<script>
const x =
[ { firstName: "Daniel"
, lastName: "James"
}
,
{ firstName: "Laura"
, lastName: "Murray"
}
];
</script>