js数组常用的扩展方法 如取某个元素然后删除

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>js_extends.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript">
//用于清空数组
Array.prototype.clear = function() {
    this.length = 0;
}

//判断数据项在数组中的位置
var oldArrayIndexOf = Array.indexOf;//判断是否原始浏览器是否存在indexOf方法
Array.prototype.indexOf = function(obj) {
	//要兼容FF,chrome 
    //if(!oldArrayIndexOf) {
        for(var i = 0, imax = this.length; i < imax; i++) {
            if(this[i] === obj) {
                return i;
            }
        }
        return -1;
    //} else{
   //     return oldArrayIndexOf(obj);
   // }
}

//判断数据项在数组中的位置 lastIndexOf
var oldArraylastIndexOf = Array.lastIndexOf;//判断是否原始浏览器是否存在lastIndexOf方法
Array.prototype.lastIndexOf = function(obj) {
    
	//要兼容FF,chrome
	//if(!oldArraylastIndexOf) {
        for(var i = this.length; i >= 0; i--) {
            if(this[i] === obj) {
                return i;
            }
        }
        return -1;
    //} else{
    //    return oldArraylastIndexOf(obj);
    //}
}


//判断数据项是否在该数组中
Array.prototype.contain = function(obj) {
    return this.indexOf(obj) !== -1;
}

//把数据项添加到指定的位置
Array.prototype.insertAt = function(index, obj) {
    if(index < 0) index = 0;     if(index > this.length) index = this.length;
    this.length++;
    for(vari = this.length - 1; i > index; i--) {
        this[i] = this[i - 1];
    }
    this[index] = obj;
}

//返回最有一项数据
Array.prototype.last = function() {
    return this[this.length - 1];
}

//移除数组指定索引的值
Array.prototype.removeAt = function(index) {
    if(index < 0 || index >= this.length) return;
    var item = this[index];
    for(var i = index, imax = this.length - 2; i < imax; i++) {
          this[i] = this[i + 1];     
	}
}
//移除数据项的数据
Array.prototype.removeObj = function(val) {
	var index = this.indexOf(val);
	if (index > -1) {
		this.splice(index, 1);
	}
};


var arr = new Array()
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Martin"
arr[5] = "Adrew"
arr[6] = "Martin"

document.write("1.删除之前数据 "+arr.join())
arr.removeObj("John")
document.write("<br/> ")
document.write("删除 arr.removeAt('John');  后的数据 "+arr.join())
document.write("<br/> ")

var arr = new Array()
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Martin"
arr[5] = "Adrew"
arr[6] = "Martin"
document.write("2.Martin的位置: "+arr.lastIndexOf("Martin"))
//结果:
//1.删除之前数据                                                      George,John,Thomas,James,Adrew,Martin
//删除 arr.removeAt('John'); 后的数据 George,Thomas,James,Adrew,Martin

</script>
  </head>
  
  <body>
  </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值