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 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题