JavaScript中,有一个功能很强大的函数,名叫 splice()。它可以通过不同参数的重载,实现对数组中的元素的删除/添加的操作。
该函数会修改数组本身!
删除数组的元素
splice(index,count)
index表示的是数组的下标;
count表示的是从这个下标往后的元素的个数;
载入这两个参数,实现的功能是:从数组的index下标开始,往后面数count个元素,然后把这count个元素删除【删除的元素中,包括下标为index的元素】。
实例:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var arr = ['a', 'b', 'c', 'd'];
document.write(arr + "<br>");
arr.splice(1, 1);
document.write(arr + "<br>");
</script>
</body>
</html>
从b元素开始数,包括b元素,往后面数1个元素,然后删掉。那么就只删除了b元素这一个元素。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var arr = ['a', 'b', 'c', 'd'];
document.write(arr + "<br>");
arr.splice(1, 2);
document.write(arr + "<br>");
</script>
</body>
</html>
从b元素开始数,包括b元素,数2个元素,然后删掉。那么就删掉了2个元素,分别是b和c
给数组添加元素
splice(index,count,element)
index表示的是数组的下标;
count表示的是从这个下标往后的元素的个数;
element表示要插入的元素;
只添加元素:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var arr = ['a', 'b', 'c', 'd'];
document.write(arr + "<br>");
arr.splice(1, 0,'test');
document.write(arr + "<br>");
</script>
</body>
</html>
看到上方代码,count这个参数为0,表示不删除任何元素。index参数为1,就是b元素所在的下标位置。结合计算的结果来看,插入的元素会放在index下标的前面。这一点请大家注意!
删除元素,并且添加元素
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var arr = ['a', 'b', 'c', 'd'];
document.write(arr + "<br>");
arr.splice(1, 2,'test');
document.write(arr + "<br>");
</script>
</body>
</html>
从下标为1的位置开始算起,往后面数2个位置,然后删除掉。即删除了元素b和c。然后插入新的元素test。