JS面试题:slice,substr,substring,splice,split用法

493 阅读3分钟

1. slice用法

slice用于数组和字符串的截取

slice(start, end)

start: 开始截取的位置索引 end: 截取结束的索引值(不包含),end参数等于你要取的最后一个字符的位置值加上1

注意点:

  1. slice返回的是一个新的数组,不改变原有数组
  2. slice(start, end)中start必需有。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推
  3. slice(start, end)中end可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
    const str = 'abcd';
    const arr = ['a', 'b', 'c', 'd']
    const strDur = str.slice(1, 2)
    console.log(strDur, str) // 输出:b abcd
    const arrDur = arr.slice(1, 2)
    console.log(arrDur, arr) // 输出:['b'] ['a', 'b', 'c', 'd']

    console.log(str.slice(-1)) // 输出:d
    console.log(str.slice(-2)) // 输出:cd
    console.log(str.slice(-3)) // 输出:bcd
    console.log(str.slice(-4)) // 输出:abcd

2. substr用法

substr用于对字符串进行截取

substr(start, len)

start: 开始截取的位置索引 len: 截取字符串的长度

注意点:

  1. substr(start, len)中start为必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
  2. substr(start, len)中len可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从字符串的开始位置到结尾的字串。
  3. substr返回一个新的字符串
    const str = 'abcd'
    console.log(str.substr(1, 2)) // 输出:bc
    console.log(str.substr(2)) // 输出:cd

3. substring方法

substring(start, end)

start: 开始截取的位置索引 end: 截取结束的索引值(不包含),end参数等于你要取的最后一个字符的位置值加上1

    const str = 'abcd'
    console.log(str.substring(1, 3)) // 输出:bc
    console.log(str.substring(2)) // 输出:cd

注意: substring和substr都是用来截取字符串的,唯一不同的是第二个参数不同,substring第二个参数是截取结束的索引值,substr的第二个参数是截取新的字符串的个数

4. splice方法

用于数组的添加和删除,会改变原数组

splice(index, delCount, item1, item2...)

index: 开始截取的索引值 delCount: 输出的个数 item1,item2...: 要添加的值依次排入

    const arr = [1, 2, 3, 4, 5, 6]
    const dur = arr.splice(2)
    console.log(arr, dur) // 输出:[1,2] [3,4,5,6]

解析: 原数组会改变,返回值是截取的数组

    const arr = [1, 2, 3, 4, 5, 6]
    const dur = arr.splice(2, 1)
    console.log(arr, dur) // 输出:[1,2,4,5,6] [3]

解析: 原数组被删掉一个值,返回值会删除的值

    const arr = [1, 2, 3, 4, 5, 6]
    const dur = arr.splice(2, 1, 'insert')
    console.log(arr, dur) // 输出:[1,2,'insert',4,5,6] [3]

解析: 原数组被删掉的一个值替换成insert

5. split方法

split() 方法用于把一个字符串分割成字符串数组

split可以放两个参数,第一个参数表示分隔符,必选的;第二个参数表示返回数组的最大长度

   const str = 'a,b,c,d';
   console.log(str.split(',')) // 输出:['a', 'b', 'c', 'd']

6. 总结

  1. 操作对象字符串:split,substr,substring,slice
  2. 操作对象数组:slice,splice
  3. 操作对象数组和字符串:slice
  4. splice只能操作数组,slice可以操作字符串和数组,substr和substring只能操作字符串