原生js數組操作

1、數組去重

// ES6
var arr  = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined,null,null, NaN,NaN,'NaN', 0, 0, 'a', 'a',{},{}];
function arr_unique(arr){
	return  [...new Set(arr)];
	//或者
	//return  Array.from(new Set(arr));
}
arr_unique(arr);
//(13)[1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {…}, {…}]
// forEach 和 filter 方法也可實現去重,但是會遺漏 NaN
// 去重最終版
// hash+hasOwnProperty+JSON.stringify
function arr_unique1(arr){
	var hash = {};
	return arr.filter( (val)=>{
		return hash.hasOwnProperty( typeof  val + JSON.stringify(val) ) ?
		 false : hash[typeof val + JSON.stringify(val)] = true ;
	});
}
arr_unique1(arr);
//(12) [1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {…}]

2、刪除數組中的指定下標元素


Array.prototype.del=function(index){
        if(isNaN(index)||index>=this.length){
            return false;
        }
        for(var i=0,n=0;i
            if(this[i]!=this[index]){
                this[n++]=this[i];
            }
        }
        this.length-=1;
    };

3、刪除數組中某些指定元素

Array.prototype.delArraySome = function(assignValue){
	this.filter(function(v, i)=>{
		v===assignValue ? this[i] = '0-0' : null
		return v===assignValue
	})
	var a = []
	this.map((v,i)=>{
		this[i] === '0-0' ? a.push(v) : null
	})
	return a
}
發佈了42 篇原創文章 · 獲贊 22 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章