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);

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM