关于字符串和数组的方法,我们经常会用到,下面就详细的区分下slice、splice、split、join方法,加深下记忆并做个笔记。
slice (数组)
定义和用法
slice()方法提取部分的数组元素,返回包含提取元素的新数组,不会改变原数组。
语法
arrayObject.slice(start,end)
参数
start(必选): 指定提取部分的开始下标,可为负数(负数时从数组的尾部开始计算,如:-1为数组的最后一项,-2 指倒数第二个元素,以此类推。)end(可选): 指定提取部分的结束下标(截取部分不包含end下标的元素,截止到下标为(end-1)的元素),没有end时,默认截取数组包含从start到数组结束的所有元素,也可为负数(负数时从数组的尾部开始计算,如:-1为数组的最后一项,-2 指倒数第二个元素,以此类推。)
警告:当start与end间,无任何元素时,返回 [] 空数组。
例子
// 例子 var a = [10, 20, 30, 40, 50]; a.slice(1); // [20, 30, 40, 50] a.slice(-3); // [30, 40, 50] a.slice(-7); // [10, 20, 30, 40, 50] a.slice(5); // [] a.slice(1, 4); // [20, 30, 40] a.slice(1, -2); // [20, 30] a.slice(1, 7); // [20, 30, 40, 50] a.slice(1, -7); // []
slice (字符串)
定义和用法
slice()方法提取部分的字符串, 返回一个包含提取字符的新字符串,不会改变原字符串。
语法
stringObject.slice(start, end)
参数
start (必选),end (可选),与数组相同, 无任何字符时,返回空字符串。例子
// 例子 var str = 'how are you ?'; str.slice(1, -3); // 'ow are yo'
splice (数组)
定义和用法
splice()方法从数组中删除一个或多个元素,在删除元素位置添加一个或多个元素,返回一个包含所删除元素的新数组。注释:该方法会改变原数组。
语法
arrayObject.splice(start, deleteNumber, item1,… )
参数
start(必选):删除元素的开始位置,可为负数,负数从数组的尾部开始计算。deleteNumber(必选):删除元素的个数(number), 为0时,不删除任何元素。
item1, …., itemX (可选):添加的新元素,没有该项时,不会添加任何元素。
例子
// 例子 var a = [10, 20, 30, 40, 50]; a.splice(1, 2, 'hello', [100, 200]); // 返回 [20, 30] console.log(a); // [10, 'hello', [100, 200], 40, 50]
split (字符串)
定义和用法
split()方法在指定的位置,将字符串分割成字符串数组, 返回字符串数组, 不会改变原字符串。
语法
stringObject.split(separator, maxLength)
参数
separator (必选) :分割字符串的指定位置(字符串或正则表达式),为(”)空字符时,字符串的每个字符都将被分割。maxLength(可选) : 返回字符串数组的最大长度(number), 需返回数组的一部分使用此项。没有时,返回整个字符串分割的数组,不考虑长度。
例子
// 例子 var str = 'how are you ?'; str.split(' '); // ['how', 'are', 'you', '?'] str.split('o'); // ['h', 'w are y', 'u ?'] str.split('', 3); // ['h', 'o', 'w']
join (数组)
定义和用法
join()方法将数组中的所有元素以特定分割符分割,放入到一个字符串中。返回一个字符串,不会改变原数组。
语法
arrayObject.join(separator)
参数
separator (可选) : 指定的分割符,不设置该项,默认以逗号分割。例子
// 例子 var arr = [1, 2, 3, 4, 5, 'AA']; arr.join(); // '1,2,3,4,5,AA' arr.join('/'); // '1/2/3/4/5/AA'