当前位置: 首页 > 知识库问答 >
问题:

如何使JavaScript中每个元素的map函数键值递增

池俊茂
2023-03-14

我正在映射字段数组中的每个字段,以便每个字段都有一个从1开始的id。。。n字段数。

我用它来存储数组中的所有字段值,当一个字段被更改时,我希望数据[index]相应地更新。

这是我的map函数代码

{this.state.fields.map((field) => {
return (
    <IssueInputRow
        labelText={field.name}
        key={i}   //want this to increment by 1 for each field, starting a 0                 
        handler={this.handler}
    />
    );
})}

我希望每个字段的键从0开始增加1。因此,如果有3个字段,则相应字段的键应为0,1,2。

请让我知道这怎么可能

共有2个答案

空佐
2023-03-14

在JavaScript中,map函数有两个参数,一个是item,另一个是key。您需要始终以其他方式提供这两个参数,否则会在控制台中显示错误。Item将返回数组的值,Key将返回从0开始的下标值。

你可以这样做-

{this.state.fields == undefined ? '' : this.state.fields.map((field, i) => {
    return (
        <IssueInputRow
         labelText={field.name}
         key={i}  //Here key (i) will give you the value starting from 0           
         handler={this.handler}
        />
    );
 })} 

为了更好地理解地图,请参考-

蒋承教
2023-03-14

map函数的第二个参数是数组索引,因此可以使用它。

{this.state.fields.map((field, i) => {
  return (
    <IssueInputRow
      labelText={field.name}
      key={i}             
      handler={this.handler}
    />
  );
})}
 类似资料: