slice()方法 和splice 方法的区别。。。
定义
splice() 方法 用于插入、删除或替换数组的元素。
slice() 方法 可提取字符串的某个部分,并以新的字符串返回被提取的部分。
用法
splice 的参数 :splice (start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
数组从 start下标开始,删除deleteCount 个元素,并且可以在这个位置开始添加 n个元素
当start ,deleteCount 均为0 的时候,也就是在数组的最前面插入新的元素。
当 参数只有 start,deleteCount 就是从start 下标开始删除deleteCount 个数组的元素,
当参数只有start参数时,就是删除 从start下标起至最后 的元素
当参数 为负的时 则该参数规定的是从数组元素的尾部开始算起的位置 (-1 指的是 数组中倒数第一个元素, -2 指的是,数组中倒数第二个元素。)
slice 参数 : slice(start,end);
slice 方法,在string对象和array对象 的用法上类似。
对于数组对象来说,slice 方法提取 从 start下标起 以end下标 为结尾的 一段元素(但不包括end下标的元素),然后返回新的数组,对原数组没有任何是影响,
当参数为负时 则该参数 是从 数组的末尾 索引 开始算起,(-1 指的是 数组中倒数第一个元素, -2 指的是,数组中倒数第二个元素。)
当参数为一个参数,当为一个参数时,提取 是以 start下标起 至末尾的 部分元素。
当start 为0 时, 等于说是 克隆一个新的数组,克隆后 两个数组进行各自的操作,都互不影响,
var clone = array.slice(0);
当然 克隆 数组还有其他办法
借用concat()函数进行数组的复制:
concat() 用于进行数组的合并。使用语法为: arrayObject.concat(arrayX,arrayX,......,arrayX)
concat()用于多个数组的合并,但是返回的结果是一个新的数组,而不再引用用于合并的任何一个数组。可以利用它的这个特性来用一个数组连接空数组或直接不传参数完成clone的功能.
var clone= array.concat();