用JS对二维数组中的元素相同的一维数组去重

190 阅读1分钟

将 [[1,2,3],[1,2,3],[2,3]] ->变为 [[1,2,3],[2,3]]

直接上代码:

  const binaryArrayDuplicate = (arr) => {
        let obj = {};
        const out = [];
        for (let index = 0; index < arr.length; index++) {
          if (!obj[arr[index]]) {
            out.push(arr[index]);
            obj[arr[index]] = true;
          }
        }
        return out;
      };
      console.log(
        binaryArrayDuplicate([
          [1, 2, 3],
          [1, 2, 3],
          [2, 3],
        ])
      );

为什么这样可以去重呢?

当以[1,2,3]作为objkey时,会调用该数组的toString方法将其转化为字符串。实际上objkey'1,2,3',转化后续数组也是同样如此。所以,如果去重的一维数组数值的顺序不一致,在用此函数转化时会认为是两个不相同的key.