slice()
slice(start, end): 数组,字符串都存在此方法
截取从下标start 到下标end的之间的元素,含头不含尾,返回截取的部分
- 如果 start比end大(不会互换),或start与stop相等,则截取的为空
- 需要特别注意的是,如果 start或者stop为负数,那么负数的选项从数组尾部开始算起的位置,最后一个数字为-1,倒数第二个数字为-2,依次类推。
*不会改变原字符串或者数组
var str = 'hollow word';
var strr = str.slice(1, 3);
console.log(str); // hollow word
console.log(strr); // ol
var arr = [1, 2, 3, 4, 5];
var arrr = arr.slice(1, 4);
console.log(arr); // [1, 2, 3, 4, 5]
console.log(arrr); // [2, 3, 4]
var str = "0123456789";
arr = [0,1,2,3,4,5,6,7,8,9];
console.log(str.slice(3,3))//""
console.log(arr.slice(3,3))//[]
console.log(str.slice(6,5))//""
console.log(arr.slice(6,5))//[]
console.log(str.slice(6,-1))//"678"
console.log(str.slice(-6,-1))//"45678"
console.log(str.slice(-6,8))//"4567"
splice()
splice(start,length,items) : 数组方法
表示从下标start处截取length长度(与substr有点像)的元素后,在start处为原数组添加items,并返回被截取的新数组,splice会直接修改原数组
- start和length为必填项,items为选填项,如果length为0或者负数,则返回空数组(这里与substr相似)
- 如果start为负数,则原理和slice负数从右往左截取,最后一位数字为-1,倒数第二位为-2,依次类推
*会改变原数组
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(1,3,2,3,4))//[1,2,3]
console.log(arr);//[0,2,3,4,4,5,6,7,8,9] 原数组被截取走了1,2,3,并加入了2,3,4
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(1,0,2,3,4))//[]
console.log(arr);//[0,2,3,4,1,2,3,4,5,6,7,8,9] 直接在原数组下标0处并加入了2,3,4
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(1,-9,2,3,4))//[]
console.log(arr);//[0,2,3,4,1,2,3,4,5,6,7,8,9] 直接在原数组下标0处并加入了2,3,4
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(-1,1,2,3,4))//[9]
console.log(arr);//[0,1,2,3,4,5,6,7,8,2,3,4] 从右往左截取1位,也就是9,并加入2,3,4
substring()
substring(start,stop) 字符串方法
提取字符串中介于两个指定下标之间的字符,含头不含尾。
- 如果 start比stop大,那么方法在执行前会先交换这两个参数。
- 如果 start与stop相等,那么会返回一个空的字符串。
- 如果 start或stop为负数,那么方法在执行前会先将负数变为0。
*不会改变原字符串
var str = 'hollow word';
var strr = str.substring(1, 4);
console.log(str); // hollow word
console.log(strr); // oll
var str = "0123456789";
console.log(str.substring(8,4))//"4567"
console.log(str.substring(-2,6))//"012345"
console.log(str.substring(2,-6))//"01"
console.log(str.substring(-2,-6))//""
substr()
substr(start,length) 字符串方法
表示返回从start开始包含length长度的新字符串
包含start,不修改原字符串,返回提取的部分
与substring相比,第二个参数由代表结束的下标stop变成了规定新字符串长度的length
- 如果start为负数,那么从字符串尾部开始算起始位置,start=str.length+start。length方向不变。
- 如果length为负数或者0,那么返回空字符串
*不会改变原字符串
var str = 'hollow word';
var strr = str.substring(0, 3);
console.log(str); // hollow word
console.log(strr); // hol
var str = "0123456789";
console.log(str.substr(-1))//"9"
console.log(str.substr(-6,3))//"456"
console.log(str.substr(1,0))//""
console.log(str.substr(-1,-1))//""
console.log(str.substr(-1,0))//""
substring和substr都是对字符串进行截取操作
splice()只能操作数组
slice()可操作数组和字符串
join()
将数组作为字符串返回。元素将由指定的分隔符分隔,默认分隔符是逗号 (,)。
*不会改变原数组
const fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.join('/'))// 输出:Banana/Orange/Apple/Mango
split()
split(separator, limit) :把一个字符串按照指定字符分割成字符串数组,字符串方法
separator 如果不传,那么每个字符都会被分割
limit参数可指定返回的数组的最大长度。返回的子串不会多于这个参数指定的数组。不设置该参数,整个字符串都会被分割,不考虑它的长度。
*不会改变原字符串
var str1 = 'h-o-l-l-o-w';
var strr1 = str1.split('-');
console.log(str1); // 'h-o-l-l-o-w'
console.log(strr1); // ['h', 'o', 'l', 'l', 'o', 'w']
var str="How are you doing today"
console.log(str.split(" ",3));// 输出: ['How', 'are', 'you']
console.log(str);//How are you doing today
unshift()
将新项添加到数组的开头,并返回新的长度。
如需在数组末尾添加新项,请使用 push() 方法。
*会改变原数组
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");// 输出: 6
console.log(fruits);// ['Lemon', 'Pineapple', 'Banana', 'Orange', 'Apple', 'Mango']