slice,splice和split的区别

一、slice 对数组进行部分截取,并且返回一个新的数组,不改变原来的数组

var a = [1,2,3,4,5,6];
  	var b = a.slice(0,3);//[1,2,3]从坐标为0的数开始截取到坐标为3的数字之间的数字
  	var c = a.slice(3)//[4,5,6]当只有一个参数的时候,就代表从该参数的坐标开始截取到数组末尾
  	console.log(b+'--'+c)

a、如果两个参数中的任何一个是负数,就用数组的长度和参数相加返回一个正数

var a1 = [1,2,3,4,5,6]; //长度为6
    var b1 = a1.slice(-2);//6+(-2) = 4,//从坐标4开始截取到数组末尾
    console.log(b1) //[5,6]

b、当传入两个参数为一正一负时,length也会先于负数相加后再截取

var a2 = [1,2,3,4,5,6]; //长度为6
    var b2 = a2.slice(2,-3) //[3] 6 + (-3) = 3,(2,3)从坐标为2的数字截取到坐标为3之前的数字
    console.log(b2)

    var a3 = [1,2,3,4,5,6];
    var b3 = a3.slice(2,5); //从坐标为2的数字开始截取,一直截取到坐标为5的数字之前的数字
    console.log(b3) // [3,4,5] 

c、当传入一个参数时,大于或者等于length时,返回一个空数组

 var a4 = [1,2,3,4,5,6]
    var b4 = a4.slice(6);
    console.log(b4); // [] 

d、slice字符串

var a5 = 'i am a boy'
  var b5 = a5.slice(0,6);//i am a
  console.log(b5);

*

*

*

*

*

二、splice,会改变原数组,对原数组进行增删改查

var a6 = ['a','b','c'];
  var b6 = a6.splice(1,1,'e','f')//把坐标为1的数组抽离出来,替换成后面的两个数字,而b6就等于抽离的数字

  console.log(a6);//['a','e','f','c']
  console.log(b6);//['b'] 

  var a7 = ['a','b','c'];
  var b7 = a7.splice(0,1,'e','f');//把坐标为0的数字抽离出来,替换成后面的数字,而b7就等于抽离的数字

  console.log(a7);
  console.log(b7);

  var a8 = ['a','b','c','d'];//
  var b8 = a8.splice(0,2,'e','f')//从坐标为0的数字开始选两位

  console.log(a8);//['e','f','c','d']
  console.log(b8);//['a','b']

*

*

*

*

三、split根据特定的字符串切分成数组


  var a9 = 'caimaomao-will-be-successful!'
  var b9 = a9.split('-');

  console.log(b9)//["caimaomao", "will", "be", "successful!"]

猜你喜欢

转载自blog.csdn.net/caimaomaocai/article/details/81474469