zoukankan      html  css  js  c++  java
  • js 二维数组去重(续)

    二维数组去重,说白了就是删除重复项。今天看到有兄弟评论说代码有问题,非常感谢这位兄弟。重新修改了一下代码,如若发现我的其他blog也有问题的话,也希望能指出来,我们一起学习一起提高。代码如下:

    /**
     * 方法一
     * @param {*} arr 
     */
    const removeRepeat1 = (arr) => {
      const obj={};
      return arr.filter(item=>{
        if(!obj[item.toString()]) {
          obj[item.toString()]=item.toString();
          return item;
        }
      });
    }
    /**
     * 方法二
     * @param {*} arr 
     */
    const removeRepeat2 = (arr) => {
      const obj={};
      arr.forEach(item=>!obj[item.toString()] && (obj[item.toString()]=item));
      return Object.values(obj);
    }
    
    
    
    // 测试结果
    const matrix=[
      [1,2,3,4],
      [3,4,5,6],
      [1,2,3,4]
    ]
    
    const ans1=removeRepeat1(matrix);//[ [ 1, 2, 3, 4 ], [ 3, 4, 5, 6 ] ]
    const ans2=removeRepeat2(matrix);//[ [ 1, 2, 3, 4 ], [ 3, 4, 5, 6 ] ]
    console.log(ans1);
    console.log(ans2);

    以上代码并不完善,很多容错都没做,但核心的思想能勾传达出来,即间接的将二维数组转化为一维字符串数组的形式来进行去重。具体容错考虑后面我会添加上去,现在先写下测试用例,即matrix可能有哪些值

    二维数组我们暂且称之为矩阵,下面都用这个别名。
    1. 边界情况,例如null、undefined、非数组、非矩阵
    2. 矩阵的每一项都是一个对象类型
    3. 正常情况即数字数组
  • 相关阅读:
    各种工具类
    Mybatis各种查询
    struts配置
    spring配置和映射文件
    hibernate配置和映射文件
    mybatis配置和映射文件
    hibernate步骤和配置
    单选框,复选框和下拉框回显赋值问题
    struts2之使用oracle分页(10)
    用Spire.PDF提取PDF里的PNG图片
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/9775711.html
Copyright © 2011-2022 走看看