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

 

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

 

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

 

参数:

 

index :数组中元素的起始下标。

count :需要要被删除或替换的元素个数。

elems :需要插入到数组中的项。

返回值:返回从素组中被移除的项。

演示:

 

01<scripttype="text/javascript">

02var items=["a","b","c","d","e"];

03//删除元素

04result = items.splice(1,2)

05//这个操作删除了示例中items数组中的元素["b""c"],并返回["b""c"]result.

06//替换元素

07result =items.splice(1,2,"x","y")

08//这个操作使用元素"x","y"替换了示例中items数组中的元素["b""c"],并返回["b""c"] result.

09//插入元素

10result =items.splice(1,0,"x","y")

11//这个操作的结果是在示例中items数组的的"b"元素后插入["x","y"],返回值为空。

12</script>

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

 

01<scripttype="text/javascript">

02var arr = new Array(6)

03arr[0] = "George"

04arr[1] = "John"

05arr[2] = "Thomas"

06arr[3] = "James"

07arr[4] = "Adrew"

08arr[5] = "Martin"

09document.write(arr + "<br/>")

10arr.splice(2,0,"William")

11document.write(arr + "<br/>")

12</script>

输出:

1George,John,Thomas,James,Adrew,Martin

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

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

 

01<scripttype="text/javascript">

02var arr = new Array(6)

03arr[0] = "George"

04arr[1] = "John"

05arr[2] = "Thomas"

06arr[3] = "James"

07arr[4] = "Adrew"

08arr[5] = "Martin"

09document.write(arr + "<br/>")

10arr.splice(2,1,"William")

11document.write(arr)

12</script>

输出:

 

1George,John,Thomas,James,Adrew,Martin

2George,John,William,James,Adrew,Martin

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

 

01<scripttype="text/javascript">

02var arr = new Array(6)

03arr[0] = "George"

04arr[1] = "John"

05arr[2] = "Thomas"

06arr[3] = "James"

07arr[4] = "Adrew"

08arr[5] = "Martin"

09document.write(arr + "<br/>")

10arr.splice(2,3,"William")

11document.write(arr)

12</script>

输出:

 

1George,John,Thomas,James,Adrew,Martin

2George,John,William,Martin