来自《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]);
}
总是觉得这样分隔和连接数组,在性能上可能会有问题,不知道还有没有其它更好的方式....
本文介绍如何通过扩展JavaScript数组原型来实现在指定位置插入和删除元素的功能,并提供了一个简单的测试示例。
1169

被折叠的 条评论
为什么被折叠?



