数组和字符串中那些相似容易记错的方法

68 阅读2分钟

array

  • arr.splice(i,n) // 删除从i(索引值)开始之后的那个元素。返回值是删除的元素,会改变原数组

参数: i 索引值 n 个数

let arr = [1,2,3,4,5]
console.log(arr.splice(2,2))     //[3,4]
console.log(arr)    // [1,2,5]
  • arr.slice(start,end) 切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组,不会改变原数组
let arr = [1,2,3,4,5]
console.log(arr.slice(1,3))   // [2,3]
console.log(arr)    //  [1,2,3,4,5]

String

  • str.slice(); // 方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。
    let str = 'The morning is upon us.'; // str 的长度 length 是 23str.slice(1, 8); // 返回 'he morn.'
        str.slice(4, -2); // 返回 'morning is upon u'
        str.slice(12); // 返回 'is upon us.'
        str.slice(30); // 返回 ''
        str.slice(-3);     // 返回 'us.'
        str.slice(-3, -1); // 返回 'us'
        str.slice(0, -1);  // 返回 'The morning is upon us'
  • str.split() 方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。
let str = '123456'
console.log(str.split('')) // ["1", "2", "3", "4", "5", "6"]

字符串替换其中某一个元素的方法:

  1. 先使用split转成数组,使用下标或者splice进行替换
  2. 使用substring,提取字符然后进行拼接
  3. replace全局替换

总结: slice在数组和字符串的作用一致,都是切割其中的某一部分,不会改变原数组,split是字符串转成数组的方法,也不会改变原数组,splice数组特有删除新增数组元素的方法,即使可以通过下标获取某个位置的字符串,但是无法通过下标去修改. 其他

  • vue2中重写的数组方法只有7个,因为这几个方法会改变原数组.
var methodsToPatch = [ "push", "pop", "shift", "unshift", "splice", "sort", "reverse", ];