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日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵