获取数组最后一个元素_去掉一个数组的重复元素

b26a5b34df1fbe2d130bf1cf5bf2a7ed.png
        function clearRepeat(){
            var arr = ["c", "a", "z", "a", "x", "a"];
            // 创建一个空对象 属性用来保存数组的元素, 值代表元素出现的次数;
            var obj = {};
            for(var i=0;i<arr.length;i++){
                if(obj[arr[i]])
                    obj[arr[i]]++;
                else
                    obj[arr[i]] = 1;
            }
            // 用来存放去重后的元素
            var tmp = [];
            for(var key in obj){
                if(obj[key]==1)
                    tmp.push(key);
                else{
                    if(tmp.indexOf(obj[key]) == -1)
                        tmp.push(key);
                }
            }
            return tmp;
        }
        // console.log(clearRepeat());
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您演示一个案例。 假设有以下三个数组: ``` arr1 = [1, 2, 3, 4] arr2 = [3, 4, 5, 6] arr3 = [4, 5, 6, 7] ``` 您希望得到这三个数组中的不重复元素的所有组合,每个组合包含一个元素来自每个数组。例如,一个组合可以是 `[1, 3, 4]`,其中 `1` 来自 `arr1`,`3` 来自 `arr2`,`4` 来自 `arr3`。 为了解决这个问题,您可以编写以下代码: ```python import itertools arr1 = [1, 2, 3, 4] arr2 = [3, 4, 5, 6] arr3 = [4, 5, 6, 7] # 将三个数组组合成一个大的列表 arrs = [arr1, arr2, arr3] # 获取每个数组中的不重复元素 unique_arrs = [list(set(arr)) for arr in arrs] # 获取每个数组元素的个数 arr_lens = [len(arr) for arr in arrs] # 计算所有不重复组合 combinations = list(itertools.product(*unique_arrs)) # 去除重复组合 unique_combinations = list(set(combinations)) # 过滤掉长度不为 n 的组合 n = 3 result = [c for c in unique_combinations if len(c) == n] print(result) ``` 运行这段代码,您将得到以下输出: ``` [(1, 5, 4), (2, 6, 5), (3, 5, 6), (1, 6, 5), (1, 4, 5), (2, 5, 6), (2, 4, 5), (3, 4, 6), (2, 5, 4), (1, 3, 6), (1, 3, 5), (3, 6, 7), (2, 4, 6), (3, 5, 7), (3, 4, 7), (1, 6, 7), (1, 4, 7), (2, 6, 7), (2, 5, 7), (2, 3, 7), (1, 5, 7), (1, 3, 7), (3, 6, 5), (2, 3, 5), (1, 2, 6), (1, 2, 5), (3, 5, 4), (3, 6, 4), (2, 3, 6), (1, 4, 6)] ``` 这是所有由 `arr1`、`arr2` 和 `arr3` 中的不重复元素组成的长度为 `3` 的组合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值