js 二维数组去重(续)

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

/**
 * 方法一
 * @param {*} arr 
 */
const removeRepeat1 = arr) => {
  const obj={};
  return arr.filteritem=>{
    if!obj[item.toString)]) {
      obj[item.toString)]=item.toString);
      return item;
    }
  });
}
/**
 * 方法二
 * @param {*} arr 
 */
const removeRepeat2 = arr) => {
  const obj={};
  arr.forEachitem=>!obj[item.toString)] && obj[item.toString)]=item));
  return Object.valuesobj);
}



// 测试结果
const matrix=[
  [1,2,3,4],
  [3,4,5,6],
  [1,2,3,4]
]

const ans1=removeRepeat1matrix);//[ [ 1, 2, 3, 4 ], [ 3, 4, 5, 6 ] ]
const ans2=removeRepeat2matrix);//[ [ 1, 2, 3, 4 ], [ 3, 4, 5, 6 ] ]
console.logans1);
console.logans2);

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

二维数组我们暂且称之为矩阵,下面都用这个别名。

边界情况,例如null、undefined、非数组、非矩阵
矩阵的每一项都是一个对象类型
正常情况即数字数组

Published by

风君子

独自遨游何稽首 揭天掀地慰生平