今天来说一下splice方法,当然也属于数组中的方法。关于splice方法,先说一下它的定义:splice()将删除从start开始(包括start所指的元素在内)的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。位于插入或删除的元素之后的数组元素都会被移动,以保持它们与数组其他元素的连续性。注意,虽然spllce()方法与slice()方法名字相似,但作用不同,方法splice()直接修改数组。它返回的内容是:如果从array中删除了元素,返回的是含有被删除的元素的数组。但是要注意,由于存在—个bug,因此在JavaScriptl.2的Netscape实现中,返回的并不总是数组。
splice( start , deleteCoun t, value,... ),这个方法有三个参数,分别代表:
start:开始插入和(或)删除的数组元素的下标。
delectCount:从start开始,包括start所指的元素在内要删除的元素个数。这个参数是可选的,如果没有指定它,splice()将删除从start开始到原数组结尾的所有元素。
value , ... :要插人数组的零个或多个值,从start所指的下标处开始插入。
来举例说明:
window.onload=function(){ var arr = [1,3,4,5,3,4]; //删除作用 arr.splice(0,2); console.log(arr); //[4,5,3,4],返回的是1,3 }
window.onload=function(){ var arr = [1,3,4,5,3,4]; //替换作用 arr.splice(1,2,'aaa'); console.log(arr); //[1,'aaa',5,3,4],返回的是3,4 }
window.onload=function(){ var arr = [1,3,4,5,3,4,8,9,8]; //添加 arr.splice(3,0,'aaa'); console.log(arr); // [1, 3, 4, "aaa", 5, 3, 4],返回的是[ ] }
接下来用splice实现数组去重实例:
window.onload=function(){ var arr = [1,3,4,5,3,4,8,9,8,4]; for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i]==arr[j]){ arr.splice(j,1); j-- } } } console.log(arr) //[1,3,4,5,8,9]
}
当然数组去重的方法有很多种,这也是通过将数组里的内容一一比较,相等的用splice方法将其去除,直到去除干净。也就是通过for循环,来找出相同的然后去除。方法有很多种,都可以试试,今天就写到这里,个人愚见,希望对大家有帮助!