javascript数组像list一样插入和删除元素

来自《http://www.yshjava.cn/post/416.html》的一篇文章。

原生的JavaScript数组不能像Java中的List一样在任意位置插入和移除元素,而恰巧很多时候偏偏需要这样的功能,怎么办呢?只好对原生的JavaScript数组做一点扩展了...

扩展的代码非常简单,原理是向JavaScript的数组的原型中添加两个两个函数:insert和remove,分别负责向数组中指定位置插入元素和移除指定位置的元素。代码如下: 

Array.prototype.insert = function(index, value) {
	if(index < 0){
		//如果index位置无效,默认插入到最后一个位置上
		index = this.length;
	}
	var part1 = this.slice(0, index);
	var part2 = this.slice(index);
	part1.push(value);
	return (part1.concat(part2));
};
Array.prototype.remove = function(index) {
	//检查index位置是否有效
	if(index >= 0 && index < this.length){
		var part1 = this.slice(0, index);
		var part2 = this.slice(index);
		part1.pop();
		return (part1.concat(part2));
	}
	return this;
};

 

测试代码如下:

 

var arr = [1, 2, 3];
//遍历原始数组
for(var i = 0; i < arr.length; i++){
	alert(arr[i]);
}
//在第二个位置插入一个新元素
arr = arr.insert(1,'new 2');
//删除第三个位置上的元素
arr = arr.remove(3);
//遍历新数组
for(var i = 0; i < arr.length; i++){
	alert(arr[i]);
}

 

总是觉得这样分隔和连接数组,在性能上可能会有问题,不知道还有没有其它更好的方式....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值