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日

悬赏问题

  • ¥40 如果update 一个列名为参数的value
  • ¥15 基于51单片机的水位检测系统设计中LCD1602一直不显示
  • ¥15 OCS2安装出现问题,请大家给点意见
  • ¥15 有没有大能能帮我出个适应度函数图,T_T
  • ¥15 ros小车启动launch文件报错
  • ¥15 vs2015到期想登陆但是登陆不上
  • ¥15 IPQ5018制作烧录固件,boot运行失败(操作系统-linux)(相关搜索:操作系统)(相关搜索:操作系统)
  • ¥20 icefall在librispeech基础上加入个人数据集
  • ¥30 keepalive高可用故障运维配置询问
  • ¥15 求帮助!国家电网内网u盘突然识别不出来了。