聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

JavaScript函数补完:splice()数组操作

2011-08-26 06:00 浏览: 1002211 次 我要评论(0 条) 字号:


面试的时候如果主考官让你使用JavaScript来实现对数组元素进行插入、删除、替换操作。如果不知道Array.prototype.splice的使用的方法那很有可能就要被扣分了。使用javascript数组类型内置的splice方法仅需一行代码即可轻松实现对数组元素进行插入、删除、替换操作。

方法名:Array.prototype.splice(index,count[,elm1,elm2...n])

使用Array类型的splice方法可以对数组元素进行插入、替换、删除。该方法讲直接影响当前的数组对象(与.slice(index1,index2)方法不同)并返回被删除的数组项。

参数:

  • index :数组中元素的起始下标。
  • count :需要要被删除或替换的元素个数。
  • elems :需要插入到数组中的项。
  • 返回值 :返回从素组中被移除的项。

演示:


<script type="text/javascript">
var items =["a","b","c","d","e"];
//删除元素
result = items.splice(1,2)
//这个操作删除了示例中items数组中的元素["b","c"],并返回["b","c"]给result.
//替换元素
result = items.splice(1,2,"x","y")
//这个操作使用元素"x","y"替换了示例中items数组中的元素["b","c"],并返回["b","c"] 给 result.
//插入元素
result = items.splice(1,0,"x","y")
//这个操作的结果是在示例中items数组的的"b"元素后插入["x","y"],返回值为空。
</script>

在本例中,我们将创建一个新数组,并向其添加一个元素:


<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
arr.splice(2,0,"William")
document.write(arr + "<br />")
</script>

输出:


George,John,Thomas,James,Adrew,Martin
George,John,William,Thomas,James,Adrew,Martin

在本例中我们将删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素:


<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
arr.splice(2,1,"William")
document.write(arr)
</script>

输出:


George,John,Thomas,James,Adrew,Martin
George,John,William,James,Adrew,Martin

在本例中我们将删除从 index 2 ("Thomas") 开始的三个元素,并添加一个新元素 ("William") 来替代被删除的元素:


<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
arr.splice(2,3,"William")
document.write(arr)
</script>

输出:


George,John,Thomas,James,Adrew,Martin
George,John,William,Martin


网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复