Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在React/Javascript中查找映射的第一次迭代_Javascript_Arrays_Reactjs - Fatal编程技术网

在React/Javascript中查找映射的第一次迭代

在React/Javascript中查找映射的第一次迭代,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我正在React中映射一个对象数组,我想找到chosenFields数组的第一次迭代 人物阵列: [ { id:1, name:"Jim", occupation:"Programmer".........} {id:2, name:"Sally", occupation:"Pet Sitter".......}] 我有另一个对象数组,负责从PeopleArray显示哪些字段: chosenFields数组: [{label:"id", show:true}, {label:"name"

我正在React中映射一个对象数组,我想找到
chosenFields
数组的第一次迭代

人物阵列:

[ { id:1, name:"Jim", occupation:"Programmer".........} 
  {id:2, name:"Sally", occupation:"Pet Sitter".......}]
我有另一个对象数组,负责从PeopleArray显示哪些字段:

chosenFields数组:

[{label:"id", show:true}, {label:"name", show:true}, {label:"occupation", show:false}]
我想知道,对于
人物
数组的每一行,当代码第一次遍历
chosenFields
数组时,是否有一种方法可以识别

    renderSingleData(rowListData, currData){ 
      //find which one is the first iteration to add a radiobox for each row
   }

    renderUserData(currRow){
        return(
            <div>
                {chosenFields.map(this.renderChosenData.bind(this, currRow)}            
            </div>
        )
    }

  render() {
    return (
        <div >
            {PeopleData.map(this.renderUserData.bind(this))}
        </div>
    );
  }
}
renderSingleData(rowListData,currData){
//找出哪一个是为每行添加radiobox的第一次迭代
}
renderUserData(currRow){
返回(
{chosenFields.map(this.rendercosenda.bind(this,currRow)}
)
}
render(){
返回(
{PeopleData.map(this.renderUserData.bind(this))}
);
}
}
这是一个非常简化的代码版本。我需要通过
向表中添加一个迭代。我目前正在React中使用一个变量,并使用计数器设置状态。我想知道是否有更直接的方法通过map函数查找迭代。

查看for
数组。prototype.map()

回调函数的第二个参数是索引。如果这是0,则这是回调的第一次迭代。在您的情况下,可能需要将该条件传播到几个回调中。类似于

renderSingleData(isFirst, rowListData, currData){ 
    //find which one is the first iteration to add a radiobox for each row
}

renderUserData(currRow, currIdx){
    return(
        <div>
            {chosenFields.map(this.renderChosenData.bind(this, currIdx === 0, currRow)}            
        </div>
    )
}

render() {
    return (
        <div >
            {PeopleData.map(this.renderUserData.bind(this))}
        </div>
    );
} 
renderSingleData(isFirst、rowListData、currData){
//找出哪一个是为每行添加radiobox的第一次迭代
}
renderUserData(currRow、currIdx){
返回(
{chosenFields.map(this.renderChosenData.bind(this,currIdx==0,currRow)}
)
}
render(){
返回(
{PeopleData.map(this.renderUserData.bind(this))}
);
} 
查看for
数组.prototype.map()

回调函数的第二个参数是索引。如果这是0,则这是回调的第一次迭代。在您的情况下,可能需要将该条件传播到几个回调中。类似于

renderSingleData(isFirst, rowListData, currData){ 
    //find which one is the first iteration to add a radiobox for each row
}

renderUserData(currRow, currIdx){
    return(
        <div>
            {chosenFields.map(this.renderChosenData.bind(this, currIdx === 0, currRow)}            
        </div>
    )
}

render() {
    return (
        <div >
            {PeopleData.map(this.renderUserData.bind(this))}
        </div>
    );
} 
renderSingleData(isFirst、rowListData、currData){
//找出哪一个是为每行添加radiobox的第一次迭代
}
renderUserData(currRow、currIdx){
返回(
{chosenFields.map(this.renderChosenData.bind(this,currIdx==0,currRow)}
)
}
render(){
返回(
{PeopleData.map(this.renderUserData.bind(this))}
);
} 

感谢您的回复!我最初尝试了类似的方法,但出现了一个错误:ReferenceError:currIdx不是defined@lost9123193
PeopleData
是一个数组吗?是的,它是一个对象array@lost9123193,这很奇怪。该方法是从其他地方调用的吗?感谢您的响应!我最初尝试了类似的方法,但我得到一个错误:ReferenceError:currIdx不是defined@lost9123193
PeopleData
是一个数组吗?是的,它是一个对象array@lost9123193,这很奇怪。这个方法是从其他地方调用的吗?