我有一个类似的小数组const arr = [{ "0": "First Item", "1": "Second Item", "2": "Third Item"}]
我想在JSX中输出它。
这就是我的https://codesandbox.io/s/focused-bose-wgmbny?file=/src/App.js。正如你所看到的,它只输出数组的第一个元素。
我试过使用forEach和for循环,但都没有用。(开发人员告诉我,应该使用.map作为JSX)
我也试过这个:
arr.map((item, index) => (
<p>{item[index]}</p>
))
我只想让map输出:
“第一项”“第二项”“第三项”
但它只停留在“第一项”
4条答案
按热度按时间zxlwwiss1#
@steve这里要考虑多点
1.你的数组包含一个对象,所以数组的长度是1,并且只会迭代一次。
1.在数组中,有一个对象,访问item[index]将获取对象的第一个索引,从而获取结果。
方法1
方法2
fzwojiic2#
在您示例中,数组只有1个对象
然后循环播放
而map只会循环一次,它会返回你的对象;
您的项目为**{“0”:“第一项”,“1”:“第二项”,“2”:“第三项”};
并且index总是0**,因为它只会循环一次。
使用item[index]
这意味着你的项目是上面的对象
而item[index]仅表示object的key
h22fl7wq3#
它是一个数组,有一个对象作为它的元素。当你像这样在
arr
上使用map函数时:它迭代
arr
中的元素,对于每个元素(在本例中是单个对象),它返回带有键index
(当前map
迭代的索引)的property。所以实际上您在这里调用arr[0][0]
。正确的数组为:
然后,您可以打印每个项目:
cgvd09ve4#