javascript - 元组/二维数组的 ES6 映射函数
问题描述
我正在尝试编写一个地图函数来返回一个导航栏。我有一个数组/字典,我想使用看起来像的 map 函数进行循环
[['Text', './link.html'],
['Text2', './link2.html'],
['Text3', './link3.html']]
要不然
{'Text', './link.html',
'Text2', './link2.html',
'Text3', './link3.html'}
无论我需要循环什么类型都无关紧要,我只想循环遍历 2 个集合,理想情况下我想使用元组,但从我读过的内容来看,这似乎不是一个选项。
在查看使用dict/object 方法的解决方案时,我不知道如何访问键和值。例如。
var NavBar = (props) => {
return (
<div id="NavMain">
{Object.keys(props.links).map((link,index) => {
return <NavBarItem link={link} />
{/* Where do I access the key? */}
})}
</div>
)}
如果我尝试将其映射为二维数组,我的 IDE 会在下面的代码中的“行”、“文本”和“/>”下方显示一些错误行
var NavBar = () => {
return (
<div id="NavMain">
{this.props.links.map((row,index) => {
return <NavBarItem link=row[1] text=row[0] />
})}
</div>
)}
我查过的其他解决方案真的很乱。我想知道是否有一种干净的方法可以在 2 组上使用 map 函数。
解决方案
.map()
您可以在这样的内部使用数组解构:
所以假设你有一个数组数组的数据集:
const arr = [
['Text', './link.html'],
['Text2', './link2.html'],
['Text3', './link3.html']
]
var NavBar = (props) => {
return(
<div id="NavMain">
{arr.map(([text, link]) => {
return <NavbarItem link={link} text={text}/>
})}
</div>
)
}
我们知道第一项是text
,第二项是link
预期的。
有关工作示例,请参见沙箱:https ://codesandbox.io/s/stoic-payne-9zdp3
推荐阅读
- r - 如何为 r 中的每一行找到两个表的百分比变化?
- javascript - 如何在 VueJs 中添加/推送深层分层数据
- pandas - 熊猫中的#DataFrame
- python - 使用 Python/C# 进行动态 Google 搜索
- python - 如何在 pandas 数据帧上进行迭代以在每次迭代中获取多行
- rust - Rust,在迭代中需要一个可变的 Self 引用
- python - Python从字典创建类实例
- c# - System.InvalidOperationException: '预期的浏览器二进制位置,但在 C# 中使用 Firefox Selenium 时无法在默认位置找到二进制错误
- java - 在 Android Studio 中导入库 DirectoryChooser
- python - 理解 [0] 在以下 Python pandas 代码中的重要性