Clingfight 2022-01-25 18:09 采纳率: 100%
浏览 54
已结题

如何获取没有唯一值的数组的下标?

问题遇到的现象和发生背景

用的是react 类组件
我想在添加多列空值的数组里进行搜索操作,把对应的数据渲染到搜索的那一列,其他空白列位置不变,但是我在操作的时候不管在中间那个位置都会在最后一个添加,原因是因为我在while循环的时候 index--,最后一项已经满足我给的条件所以直接给我渲染到不应该出现的最后一列

问题相关代码,请勿粘贴截图

数组
['A000001', 'X000051', 'W000166', 'K000007', 'W000071', 'D000143', '', '', '', '', '']
代码

//主页面
{afterArr.map((item) => {
                return (
                  <SearchBar
                    key={item}
                    newList={subjectContrastList}
                    institutionCode={item?.institutionCode || ''}
                  />
                );
              })}
//SearchBar组件
// 点击当前项
  getNewListIndex = (arr, obj) => {
    let r = arr?.length;
    while (r--) {
      if (arr[r] === obj) {
        return r;
      }
    }
    return r;
  };
onChange = (e) => {
    const {institutionCode, newList} = this.props;
    const changeList= JSON.parse(JSON.stringify(newList));
    const p = this.getNewListIndex(changeList, institutionCode);
changeList[p] = e || '';
}
运行结果及报错内容

打印结果是在数组最后一项添加
['A000001', 'X000051', 'W000166', 'K000007', 'W000071', 'D000143', '', '', '', '', 'S001231']

我的解答思路和尝试过的方法
我想要达到的结果

我想在点击空白列搜索的时候获取到这个点击项的下标,搜索成功后的数组变成下面这样
['A000001', 'X000051', 'W000166', 'K000007', 'W000071', 'D000143', '', '', 'S001231', '', '']

  • 写回答

3条回答 默认 最新

  • 你好!机器人 2022-01-25 20:38
    关注

    循环的时候把索引传过去

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月3日
  • 已采纳回答 1月26日
  • 创建了问题 1月25日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效