• js 操作数组函数自定义


    1.删除数组中指定的元素

    /**
     * 参考实例
    foreach = function (obj, insp){
      if(obj== null && obj.constructor != Array){
      return [];
    }
    //obj是要处理的数组,obj==null 表示对象尚未存在;obj.constructor != Array 表示对象obj的属性的构造函数不是数组;
    //constructor属性始终指向创建当前对象的构造函数。两个条件均满足,则返回空数组[];
    
    //下面对constructor属性作进一步了解。
    var obj= [1, 2, 3, 4]; // 等价于 var obj= new Array(1, 2, 3, 4);
    console.log(obj.constructor === Array); // 返回true 表明obj的构造函数为Array;
    
    var foo= function() { }; // 等价于 var foo = new Function();
    console.log(foo.constructor === Function); // 返回true 表明foo的构造函数为Function;
    
    var obj = new Foo();  //由构造函数实例化一个obj对象
    console.log(obj.constructor === Foo); // 返回true 表明obj的构造函数为Foo;
    
     */
    
    //删除数组中指定的元素
    function del(val, arr)
    {
        //检测参数
        if (arr == null && arr.constructor != Array) {
            return [];
        }
        
        var newarr = []; //不存在的保存到新数组中
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] != val)
                newarr.push(arr[i]);
        }
        return newarr;
    }
    alert(del(2, [1, 2, 3, 4, 5, 2]));

    2.去除重复的元素

    /**
     *去除数组中重复的元素
    把元素的值存为一个新数组的key,key是不可以重复的,然后变量次数组即可
     */
    function unique(data) {
        data = data || [];
        var a = {};
        len = data.length;
        for (var i = 0; i < len; i++) {
            var v = data[i];
            if (typeof(a[v]) == 'undefined') {
                a[v] = 1;
            }
        };
        data.length = 0;
        for (var i in a) {
            data[data.length] = i;
        }
        return data;
    }
    alert(unique([12,12,12,34]));

     3.删除数组指定下标的元素

    /**
     *删除数组的指定下标元素 
     *
     * i 的值是一直在变的,n的值是只有if条件成立的时候才会变(会依次递增)
     */
    Array.prototype.remove=function(dx)
      {
        if(isNaN(dx)||dx>this.length){return false;}
        for(var i=0,n=0;i<this.length;i++)
        {
            if(this[i]!=this[dx])
            {
                this[n++]=this[i]
            }
        }
        this.length-=1
      }
    
    var arr = [1,2,3,4,2,5];
    alert(arr);
    arr.remove(2);
    
    alert(arr);

     

     

  • 相关阅读:
    理解angularJs中的$on,$broadcast,$emit
    ionic项目上划刷新和下拉刷新
    写在开始
    Django查询结果以时间正序或者倒序排列
    Django把现在时间写入数据库,模板渲染在页面中
    《易中天品三国》———— 六、一错再错
    《易中天品三国》———— 五、何去何从
    《易中天品三国》———— 四、能臣之路
    《易中天品三国》———— 三、奸雄之谜
    《易中天品三国》———— 二、真假曹操
  • 原文地址:https://www.cnblogs.com/siqi/p/2728762.html
Copyright © 2020-2023  润新知