为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Javascript中删除数组中的重复数组?

如何在Javascript中删除数组中的重复数组?

叮当猫咪 2021-04-15 18:15:28
如何在JavaScript中删除重复的排序数组?我尝试在新集合上使用扩展语法制作一个新数组,但这看起来极其复杂,并迫使我的结果集看起来像这样:[ [ '-', '1', ',', '0', ',', '1' ],  [ '-', '1', ',', '-', '1', ',', '2' ] ][ [ '-', '1', ',', '0', ',', '1' ],  [ '-', '1', ',', '-', '1', ',', '2' ] ][ [ '0', ',', '0', ',', '0' ] ][ [ '0', ',', '0', ',', '0' ] ][ [ '-', '4', ',', '-', '2', ',', '6' ],  [ '-', '4', ',', '0', ',', '4' ],  [ '-', '4', ',', '1', ',', '3' ],  [ '-', '4', ',', '2', ',', '2' ],  [ '-', '2', ',', '-', '2', ',', '4' ],  [ '-', '2', ',', '0', ',', '2' ] ][ [ '-', '4', ',', '-', '2', ',', '6' ],  [ '-', '4', ',', '0', ',', '4' ],  [ '-', '4', ',', '1', ',', '3' ],  [ '-', '4', ',', '2', ',', '2' ],  [ '-', '2', ',', '-', '2', ',', '4' ],  [ '-', '2', ',', '0', ',', '2' ] ]或者[ [ '-1,0,1' ], [ '-1,-1,2' ] ][ [ '-1,0,1' ], [ '-1,-1,2' ] ][ [ '0,0,0' ] ][ [ '0,0,0' ] ][ [ '-4,-2,6' ],  [ '-4,0,4' ],  [ '-4,1,3' ],  [ '-4,2,2' ],  [ '-2,-2,4' ],  [ '-2,0,2' ] ][ [ '-4,-2,6' ],  [ '-4,0,4' ],  [ '-4,1,3' ],  [ '-4,2,2' ],  [ '-2,-2,4' ],  [ '-2,0,2' ] ]请注意,这些是在我将其设置为字符串之后。该集合将不会删除重复的排序数组,因为它们是不同的对象。这是代码。var threeSum = function (arr) {    let map = new Map();    for (let i = 0; i < arr.length; i++) {        let num = arr[i];        if (map.has(num)) {            map.get(num).push(i);        }        else {            map.set(num, [i]);        }    }    const results = [];    for (let i = 0; i < arr.length; i++) {        for (let j = i + 1; j < arr.length; j++) {            let diff = (arr[i] + arr[j]);            diff = (diff == 0) ? diff: diff * -1;            if (map.has(diff)) {                let mArr = map.get(diff);                for (let k = 0; k < mArr.length; k++) {                    if (mArr[k] != i && mArr[k] != j ) {                        results.push([arr[i], arr[j], diff]);                    }                }            }        }    }
查看完整描述

2 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

是完美的完成这个任务。集保持其所有元素都是唯一的条件。这是完成任务的方式:

  1. 创建一个包含结果元素的新集合: let set = new Set(results.map(result => JSON.stringify(result))

  2. 将集合转换为数组。这可以使用Array.from(set).map(elem => JSON.parse(elem))


查看完整回答
反对 回复 2021-04-22
  • 2 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信