原生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
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值