首页 新闻 搜索 专区 学院

数组去重的小问题

0
悬赏园豆:5 [已解决问题] 解决于 2016-10-18 21:11

小白一枚,还请不要见笑!还是关于数组去重的小问题,用的打擂法好像,以下是代码:

var arr=[1,3,1,2,3,4];

for(var i = 0;i<arr1.length;i++){
for(var j=i+1;j<arr1.length;j++){
if (arr[i]==arr[j]){
arr.splice(j,1);
j--;
}
}
}
console.log(arr);

结果是我想要的,前三行上逻辑,写法都没问题能够理解,将下标[0]的字符与后面作比较,重复数字的删除掉。
第四行代码arr.splice(j,1);这行代码不太懂,求解答!!
菲林科的主页 菲林科 | 初学一级 | 园豆:197
提问于:2016-10-18 18:16
< >
分享
最佳答案
1

splice(index,num)函数是js中数组的一个增/删元素的函数。意思就是,arr.splice(j,1);就是将arr数组中下标为j的元素删除。

收获园豆:5
授之以渔 | 小虾三级 |园豆:1076 | 2016-10-18 18:28

那么j后面的1是number类型,表明删除1个是嘛?

菲林科 | 园豆:197 (初学一级) | 2016-10-18 18:56

@菲林科: 对。

授之以渔 | 园豆:1076 (小虾三级) | 2016-10-18 18:57

那用 i和i+1行吗 删除一个i

朝阳升 | 园豆:197 (初学一级) | 2016-10-18 21:07

@朝阳升: 这种两层循环的,一般都处理内部循环的。要删除外部循环的i的话,就要退出内部循环,重新开始外部循环

授之以渔 | 园豆:1076 (小虾三级) | 2016-10-18 22:00

@授之以渔: 哦,谢谢

朝阳升 | 园豆:197 (初学一级) | 2016-10-19 10:57

@朝阳升: 能帮我看看这个嘛?一个模仿滚动条的JS,这是代码!

<head>    
<style>
        *{margin:0; padding: 0;}
        #box{
            width: 30px; height: 350px; position: relative; background: red;
        }
        #pox{
            width: 30px; height: 30px; position: absolute; background: blue;
        }
</style>
<script>
    var oPox=document.getElementById('pox');
    var oBox=document.getElementById('box');
    oPox.onmousedown=function(evt){
        var e = evt||event;
        var disY=e.clientY-this.offsetTop;
        document.onmousemove=function(evt){
            var e=evt||event;
            var t=e.clientY-disY;
            if(t<0){
                t=0;
            }else if(t>oBox.offsetHeight-oPox.offsetHeight){
                t=oBox.offsetHeight-oPox.offsetHeight;
            }
        }
    }
</head>
<body>
    <div id="box">
        <div id="pox"></div>
    </div>
</body>

但光是一个onmousedown就一直报错,请问是哪里的问题?

菲林科 | 园豆:197 (初学一级) | 2016-10-20 15:57
其他回答(1)
0

var a=[1,3,4,3,6,7,8,5,4,6];
        var b=[];
    
            for(i=a.length;i--; i>-1){
                    if(b.indexOf(a[i])<0){
                        b.push(a[i]);
                    }
                    
            }
            
        document.write(b+"<br/>");

朝阳升 | 园豆:197 (初学一级) | 2016-10-18 20:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册