JavaScript中,slice,splice和split三个函数的使用方法的总结o(* ̄︶ ̄*)o

1. slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。

语法: array.slice(begin,end),第一个参数 begin 表示开始截取的索引(包含),第二个参数 end 表示结束截取的索引(不包含end)

好比,有这样一个数组:

var array=[1,2,3,4,5,6];
var arr1=array.slice(0,3); // 输出[1,2,3]
var arr2=array.slice(3); //若是 end 被省略,则 slice 会一直提取到原数组末尾,输出[4,5,6]。
var arr3=array.slice(-1); //若是只传入一个参数,且是负数时,length会与参数相加,而后再截取,输出[6]
var arr4=array.slice(2,-3);  //若是当传入两个参数一正一负时,length也会先于负数相加后,再截取,输出[3]
var arr5=array.slice(-8);  //若是只传入一个参数,是负数时,而且参数的绝对值大于数组length时,会截取整个数组,输出[1,2,3,4,5,6]
var array=arr.slice(8);  //若是传入一个参数,大于length时,将返回一个空数组,输出[]

复制代码

slice 不会修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组。原数组的元素会按照下述规则拷贝:

  • 若是该元素是个对象引用 (不是实际的对象),slice 会拷贝这个对象引用到新的数组里。两个对象引用都引用了同一个对象。若是被引用的对象发生改变,则新的和原来的数组中的这个元素也会发生改变。
  • 对于字符串、数字及布尔值来讲(不是 String、Number 或者 Boolean 对象),slice 会拷贝这些值到新的数组里。在别的数组里修改这些字符串或数字或是布尔值,将不会影响另外一个数组。

若是向两个数组任一中添加了新元素,则另外一个不会受到影响。正则表达式

2. splice() 方法经过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。

语法: array.splice(start,deleteCount,item...),参数start是从数组array中移除元素的开始位置。参数deleteCount是要移除的数组元素的个数,必须是整数,若是 deleteCount 是 0 或者负数,则不移除元素。若是有额外的参数,那么item会插入到被移除元素的位置上。

下面举例说明spliced的用法,一样先设置一个数组

var a=[1,2,3,4,5,6];
var b=a.splice(1,2,'f','g');  //这里表示从数组索引1开始移除元素,移除2个元素,在移除的位置分别插入'f' 和'g',输出 a=[1,'f','g',4,5,6],b=[2,3]

复制代码

咱们知道 delete 和 splice 均可以删除数组中的元素,可是它们是有区别的,例若有一个数组,这时咱们想删除数组中的b元素 :数组

var arr = ['a','b','c','d'];
delete arr[2]; // 用 delete 删除,输出 [ 'a', <1 empty item>, 'c', 'd' ],
arr.splice();  // 用 splice 删除,输出 [ 'a', 'c', 'd' ]
复制代码

可见,用 delete 删除的时候,其余元素的键值是不变的,被删除的位置会用 <1 empty item> 表示ui

3. split() 方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每一个拆分的位置。

语法: string.split(separator,limit),split方法把这个string分割成片断来建立一个字符串数组。可选参数limit能够限制被分割的片断数量。separator参数能够是一个字符串或一个正则表达式,下面咱们从一些简单例子中去理解 split 的用法

var str = 'The quick brown fox jumps over the lazy dog.';
var words = str.split(' ');
console.log(words[3]);  // 输出: fox
var chars = str.split('');
console.log(chars[8]);  // 输出: k
var strCopy = str.split();
console.log(strCopy);  // 输出: Array ['The quick brown fox jumps over the lazy dog.']
// 再好比:
var a = "0123456";
var b = a.split('', 3); // 输出: b=[ '0', '1', '2' ]
复制代码

想了解更多关于split的用法,能够查看MDN官方文档,请点此连接^_^spa

明天又是充满但愿的一天,继续加油O(∩_∩)O

喵
相关文章
相关标签/搜索