Sorted Union freeCode

写一个 function,传入两个或两个以上的数组,返回一个以给定的原始数组排序的不包含重复值的新数组。

换句话说,所有数组中的所有值都应该以原始顺序被包含在内,但是在最终的数组中不包含重复值。

非重复的数字应该以它们原始的顺序排序,但最终的数组不应该以数字顺序排序。


function unite(arr1, arr2, arr3,arr4) {
//存放数组
            var newArr;
//这里的判断有点鸡肋哈,毕竟参数有可能会出现更多个,而不是固定的2,3个
            if(arr3,arr4){
                newArr = arr1.concat(arr2,arr3,arr4);   
            }else if(arr3){
                newArr = arr1.concat(arr2,arr3);
            }else if(arr2) {
                newArr = arr1.concat(arr2);
            }else{
                newArr = arr1;
            }
//bigArr是内循环用的,在这里赋值刚好可以把处理好的newArr赋值给他,而相对的位置就会不变
            var bigArr = newArr;
            for(var i = 0;i < newArr.length;i++){
                for(var t = 0;t < bigArr.length;t++){
//拿newArr的当前元素和bigArr每个元素比较,出现相同的,先判断是否位置相同,如果是的话则
//表示是同一个,继续下个元素比较。
                    if(newArr[i] == bigArr[t]){
                        if(i == t){
                            continue;
                        }else{
//要去除的位置就是目前对比的位置
                            newArr.splice(t,1);
                        }
                    }
                }
            }
            return newArr;
        }

<h2>这个呢是我自己写的,前面的判断又臭又长哈。但每次的经历都让我倍感开心。</h2>
<h6>其实思路都是差不多的,比较,然后要么剔除相同的元素,要么添加没有的元素。下面这个是别人写的,比我的好懂多了哈</h6>


function unite(arr1, arr2, arr3) {
            var newArr =[];
            for(var i =0;i < arguments.length;i++){
//这里遍历参数,传进来几个数组就是几个。都会被接受的,第一个方案的话是不行的,如果传进来
//的5,6个或更多个,多余的会出现undefined的。然后把遍历到的数组赋值给变量。
                var newA = arguments[i];
                for(var t= 0;t< newA.length;t++){
//这里得到的元素用来判断是否存在于newArr里面,如果没有是-1,有的话是正数
                    var newB = newA[t];
                    if(newArr.indexOf(newB)<0){
                        newArr.push(newB);
                    }
                }
            }
            return newArr;
        }

<h3>这个是官方写的哈,但重要的是理解它的思路!</h3>
<h6>这里建议各位在做题的时候先自己做,无论觉得多糟糕,只有是你自己做的你才会知道你自己的不足在哪里!之后再参考官方的思路,这样自己也会得到提升</h6>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,500评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,850评论 19 139
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,662评论 0 4
  • 是灰色 是漆黑色 是纯白色 是咖啡冷却时你想要的颜色 拥抱我 再远离我 琳琅的借口 是游戏完结后你想要的自由 不回...
    支点轻课class阅读 1,220评论 0 0
  • 醒来时或一切发生 冬天的一场雨中,体温变得狂热 血液也开始在体内躁动 病变 像一头凶猛的野兽 吞噬着我的意识 灵魂...
    鲁冰魂阅读 1,387评论 1 0

友情链接更多精彩内容