JavaScript中slice、splice和split方法我有时候会搞混,傻傻分不清楚,所以想做下笔记
slice
slice方法可以用在数组和字符串
-
数组 array.slice(start, end)
该方法对数组进行部分截取,接收两个参数,start是从数组索引0开始,end(可选)就是数组中一个元素的位置值(索引)+1,并且返回一个副本
var arr = [1, 2, 3, 4, 5, 6] var arr2 = arr.slice(0, 4) // arr2 = [1, 2, 3, 4]
如果传的是一个负数,则就与数组的长度相加的位置
var arr3 = arr.slice(-2) //6 - 2 = 4 // arr3 = [5, 6]
-
字符串 string.slice(start,end)
slice方法会复制String的一部分来构造一个新的字符串,用法和数组的slice方法一样
var str = "Hello World" var str2 = str.slice(0, 5) // str2 = "Hello"
splice
array.splice(start, count, item) 接收三个参数,start开始分割的位置(数组索引),count是删除元素的个数, item是额外的元素,存在就追加到数组中
var arr = [1, 2, 3, 4, 5, 6]
var arr2 = [7, 8]
var temp = arr.splice(2, 0, arr2)
/**
*从第2个位置的元素arr[2] = 3 开始, 如果count参数为0就是不删除,arr2新数组
*就往arr[2]前面开始插入, 如果count参数大于0,则就删除arr[2]这个元素,再把arr2往旧数组arr[2]的位置插入,并且返回删除的元素
//arr = [1, 2, 7, 8, 3, 4, 5, 6]
// temp = ""
split
array.split(separator, limit) 接收两个参数,separator参数可以是一个字符串或者是一个正则表达式,如果是一个空字符串,就会返回一个单字符的数组;limit是可选的,是限制分割的数量
var str = "123456"
var arr = str.split("")
// arr = ["1", "2", "3", "4", "5", "6"]
split()会用在把地址分割
var url = "http://www.example.com?id=1"
var search = url.split("?")
// search = ["http://www.example.com", "id=1"]