我有下面的code。
我有一个数组数据的数组。
const data = [
[
{
city: "Phnom Penh",
country: "KH"
},
{
city: "Tirana",
country: "AL"
},
{
city: "Andorra la Vella",
country: "AD"
}
],
[
{
city: "Mariehamn",
country: "AX"
}
],
[]
];
我尝试在新变量中打印所有city
,然后希望在select
中显示
const cities = data.map((el) => el).map((el, idx) => el[idx]?.city);
<select>
{cities.map((el) => (
<option value={el} key={idx}>
{el}
</option>)}
</select>
但我只能拿到第一城。
现在的输出为
(3) ["Phnom Penh", undefined, undefined]
但是输出应该是
(4) ["Phnom Penh", "Tirana", "Andorra la Vella", "Mariehamn"]
请帮助我更正我的代码。
谢谢。
3条答案
按热度按时间wgxvkvu91#
我修好了你的code
为了便于理解,我将其分为两个变量。
然后可以在
select
标记中显示它hi3rlvi22#
flat()方法创建一个新数组,将所有子数组元素递归地连接到该数组中,直到指定的深度。
JavaScript中的Javascript map()方法通过对父数组中的每个元素调用特定函数来创建数组。它是一个非变异方法。通常,map()方法用于迭代数组并对数组的每个元素调用函数。
fd3cxomn3#
由于并非每个环境都提供平面,因此我提供了一个替代解决方案: