Javascript 使用带有两个输入的arrow函数调用Array.prototype.map()的目的是什么?
我正在学习关于React.js的教程,在这里我看到了Javascript 使用带有两个输入的arrow函数调用Array.prototype.map()的目的是什么?,javascript,reactjs,Javascript,Reactjs,我正在学习关于React.js的教程,在这里我看到了React.Component的render方法中的以下代码片段: const moves = history.map((step, move) => { const desc = move ? 'Go to move #' + move : 'Go to game start'; return ( <li> <button onClick={() => this.jum
React.Component
的render
方法中的以下代码片段:
const moves = history.map((step, move) => {
const desc = move ?
'Go to move #' + move :
'Go to game start';
return (
<li>
<button onClick={() => this.jumpTo(move)}>{desc}</button>
</li>
);
});
我不明白的是为什么
history.map
中的箭头函数有两个输入,step
和move
。在map
的文档中,我只看到带有一个输入的箭头函数的示例(即所讨论的数组元素)。我也没有看到在arrow方法主体中的任何地方使用步骤
输入,因此我不确定它的用途。有人能解释一下吗?在这个例子中,移动是每个步骤的索引。使用此索引,您可以在历史记录中找到指定的步骤。在本例中,移动是每个步骤的索引。使用此索引,您可以在历史记录中找到指定的步骤。对于数组中的每个项目,他们都在创建某种类型的React组件
他们如何使用第二个参数(数组索引)作为条件运算符的布尔计算条件:代码>
因此,因为唯一的“错误”数字是0
(而不是NaN
),当索引是0
(第一次迭代)时,desc
将是“转到游戏开始”
,否则它是带有位置的另一条消息
下面是一个简化的无反应演示:
const history=[“这些”、“值”、“是”、“忽略了”];
常量移动=历史。映射((步骤,移动)=>{
const desc=移动?
“转到移动”#+移动:
“进入游戏开始”;
返回描述;
});
控制台日志(移动)代码>对于数组中的每一项,他们都在创建某种类型的React组件
他们如何使用第二个参数(数组索引)作为条件运算符的布尔计算条件:代码>
因此,因为唯一的“错误”数字是0
(而不是NaN
),当索引是0
(第一次迭代)时,desc
将是“转到游戏开始”
,否则它是带有位置的另一条消息
下面是一个简化的无反应演示:
const history=[“这些”、“值”、“是”、“忽略了”];
常量移动=历史。映射((步骤,移动)=>{
const desc=移动?
“转到移动”#+移动:
“进入游戏开始”;
返回描述;
});
控制台日志(移动)
映射中的第二个参数是索引。这可能有助于您在历史记录中导航
让历史记录=[
{
正方形:[
空,空,空,
空,空,空,
空,空,空,
]
},
{
正方形:[
空,空,空,
空,'X',空,
空,空,空,
]
}
]
history.map((step,move)=>console.log(“step:,step,“\nindex(move:”,move))
map
中的第二个参数是索引。这可能有助于您在历史记录中导航
让历史记录=[
{
正方形:[
空,空,空,
空,空,空,
空,空,空,
]
},
{
正方形:[
空,空,空,
空,'X',空,
空,空,空,
]
}
]
history.map((step,move)=>console.log(“step:,step,“\nindex(move:”,move))
查看该文档中的“参数”部分。回调可以接受3个参数:currentValue、index和array<代码>步骤
是当前值,移动
是索引。请查看该文档中的“参数”部分。回调可以接受3个参数:currentValue、index和array<代码>步骤
是当前值,移动
是索引。
history = [
{
squares: [
null, null, null,
null, null, null,
null, null, null,
]
},
{
squares: [
null, null, null,
null, 'X', null,
null, null, null,
]
},
// ...
]