声明:var
1 | var arr=[1,2,3]//声明一个数组 |
声明了一个叫arr的数组,数组里依次是1、2、3三个数字
1 | var str="123"//声明一个字符串 |
声明了一个叫str的字符串,字符串里有123,注意,它已经不是数字了
获取长度:length
1 | XXX.length//获取名为XXX的字符串或数组的长度 |
比如有一个叫arr数组里依次是1、2、3三个数字,调用arr.length将会得到3
比如有一个叫str的字符串,字符串里是abcd,调用str.length将会得到4
当然这行代码直接执行没有意义,你需要声明一个变量把获取到的长度存起来
1 | var a=XXX.length |
或者直接把长度显示在控制台中
1 | console.log(XXX.length) |
截取:slice
1 | arr.slice(a,b)//返回一个新的数组,包含下标从a到b(不包括该元素)的arr中的数字 |
可使用负值从数组的尾部选取数字,如果b未被规定,那么 slice()方法会选取从a到数组结尾的所有数字。
比如arr数组里原先依次是1、2、3、4、5五个数字,调用arr.slice(0,3)将会得到1、2、3
当然这行代码直接执行没有意义,你需要声明一个数组把操作之后的数组存起来
1 | var arr1=arr.slice(0,3) |
或者直接把截取的数组显示在控制台中
1 | console.log(arr.slice(0,3)) |
或者直接修改原来的数组
1 | arr=arr.slice(0,3) |
1 | str.slice(a,b)//返回一个新的字符串,包含下标从a到b(不包括该元素)的str中的字符 |
比如str字符串里原先有12345,调用str.slice(0,3)将会得到123
当然这行代码直接执行也没有意义,你可能会遇到的情况和对应的操作方法同截取数组
合并:concat
1 | arr1.concat(arr2)//返回一个新的数组,把arr2接在arr1后面 |
比如arr1数组里原先依次是1、2、3三个数字,arr2数组里原先依次是4、5、6三个数字,调用arr1.concat(arr2)将会得到1、2、3、4、5、6
当然这行代码直接执行也没有意义,你可能会遇到的情况和对应的操作方法同截取数组
字符串合并非常简单,直接用+就行了
1 | str1+str2//把str2接在str1后面 |
比如str1字符串里原先有123,比如str2字符串里原先有456,调用str1+str2将会得到123456
当然这行代码直接执行没有意义,你需要声明一个字符串把操作之后的字符串存起来
1 | var a=str1+str2 |
或者直接把合并后的字符串显示在控制台中
1 | console.log(str1+str2) |
或者直接修改原来的字符串
1 | str1=str1+str2 |
查找
查找首次出现位置:indexOf
1 | XXX.indexOf(a,b)//查找名为XXX的字符串或数组从下标b开始首次出现a的下标 |
其中,b可以省略不写,当b省略不写时默认从头开始查找,当找不到时返回-1
比如arr数组里原先依次是1、2、3、4、1五个数字,调用arr.indexOf(1)将会得到0,调用arr.indexOf(2)将会得到1,调用arr.indexOf(1,2)将会得到4,调用arr.indexOf(2,2)将会得到-1
比如str字符串里原先有Hello,world!,调用str.indexOf("Hello")将会得到0,调用str.indexOf("world")将会得到6,调用str.indexOf("Hello",2)将会得到-1
当然这行代码直接执行没有意义,你可以把得出的结论显示在控制台中
1 | console.log(arr.indexOf(1)) |
也可以用于接下来说的添加、替换和删除
判断在不在数组里:in
1 | a in XXX//判断a是否在名为XXX的数组里 |
比如arr数组里原先依次是1、2、3、4、5五个数字,调用1 in arr将会得到true,调用0 in arr将会得到false
当然这行代码直接执行没有意义,你可以把得出的结论显示在控制台中
1 | console.log(1 in arr) |
也可以用在判断语句和循环语句中
1 | if(1 in arr) |
判断在不在字符串里:includes
1 | XXX.includes(a)//判断a是否在名为XXX的字符串里 |
比如str字符串里原先有123,str1字符串里原先有12,str2字符串里原先有13,调用str.includes('1')或str.includes(str1)都将会得到true,调用str.includes('0')或str.includes(str2)都将会得到false
注意,此方法区分大小写,比如str字符串里原先有abc,调用str.includes('Abc')将会得到false
当然这行代码直接执行也没有意义,你可能会遇到的情况和对应的操作方法同判断在不在数组里
添加
在末尾添加:push
1 | XXX.push(a)//在名为XXX的数组末尾添加a这个数字 |
比如arr数组里原先依次是1、2、3三个数字,执行arr.push(4)这个代码之后数组里就依次是1、2、3、4四个数字了
在字符串末尾添加字符串同合并字符串
1 | XXX+"abc"//在名为XXX的字符串末尾添加abc这个字符串 |
比如str字符串里原先有123,调用str+"abc"将会得到123abc
当然这行代码直接执行也没有意义,你可能会遇到的情况和对应的操作方法同合并字符串
在最前面添加:unshift
1 | XXX.unshift(a)//在名为XXX的数组末尾添加a这个数字 |
比如arr数组里原先依次是1、2、3三个数字,执行arr.push(4)这个代码之后数组里就依次是4、1、2、3四个数字了
1 | 在字符串最前面添加字符串同*合并字符串* |
比如str字符串里原先有123,调用"abc"+str将会得到abc123
当然这行代码直接执行也没有意义,你可能会遇到的情况和对应的操作方法同合并字符串
在中间添加:splice
1 | XXX.splice(a,0,b)//在名为XXX的数组的第a项**之前**添加b这个数字 |
比如arr数组里原先依次是1、2两个数字,执行arr.splice(1,0,3)这个代码之后数组里就依次是1、3、2三个数字了
比如arr数组里原先依次是1、2、3、4、5五个数字,想要在2前面加上6这个数字,则需要执行arr.splice(arr.indexOf(2),0,6)
在字符串中间添加字符串是非常麻烦的,首先需要先把原先的字符串从要添加的位置分开成两部分,然后将前半部分不动,中间是要添加的字符串,最后是后半部分合并在一起
1 | var newstr = str.slice(0,5)+"-local"+str.slice(5) |
比如str字符串里原先有Hello,world!
执行这段代码后newstr就变成了Hello-local,world!
替换:splice
1 | XXX.splice(a,b,c)//将名为XXX的数组从第a+1项开始的连续b项替换成c |
比如arr数组里原先依次是1、2、3、4、5五个数字,执行arr.splice(2,1,6)这个代码之后数组里就依次是1、2、6、4、5了,而执行arr.splice(2,2,6)这个代码之后数组里就依次是1、2、6、5了
字符串的替换就是截取不需要替换的部分,与需要替换的字符串拼接
比如arr数组里原先依次是1、2、3、4、5五个数字,想要把其中的2替换成6,则需要执行arr.splice(arr.indexOf(2),1,6)
删除
从末尾删除:pop
1 | XXX.pop()//删除名为XXX的数组末尾的数字 |
比如arr数组里原先依次是1、2、3、4四个数字,执行arr.pop()这个代码之后数组里就依次是1、2、3三个数字了
在字符串末尾删除字符串同截取字符串
从最前面删除:shift
1 | XXX.shift()//删除名为XXX的数组最前面的数字 |
比如arr数组里原先依次是1、2、3、4四个数字,执行arr.shift()这个代码之后数组里就依次是2、3、4三个数字了
在字符串末尾删除字符串同截取字符串
从中间删除:splice
1 | XXX.splice(a,b)//删除名为XXX的数组从第a+1项开始连续b项的数字 |
比如arr数组里原先依次是1、2、3、4、5五个数字,执行arr.splice(2,1)这个代码之后数组里就依次是1、2、4、5了,而执行arr.splice(2,2)这个代码之后数组里就依次是1、2、5了
字符串从中间删除就是截取不需要删除的部分拼接在一起
比如arr数组里原先依次是1、2、3、4、5五个数字,想要把其中的2删除,则需要执行arr.splice(arr.indexOf(2),1)
排序:sort
1 | XXX.sort()//将名为XXX的数组中的数字从小到大排列 |
比如arr数组里原先依次是5、2、1、3、4五个数字,执行arr.sort()这个代码之后数组里就依次是1、2、3、4、5五个数字了
字符串没有排序功能
反转:reverse
1 | XXX.reverse()//将名为XXX的数组反转 |
比如arr数组里原先依次是5、2、1、3、4五个数字,执行arr.reverse()这个代码之后数组里就依次是4、3、1、2、5五个数字了
字符串与数组的相互转换
字符串转数组:split
1 | XXX.split(a)//指定的分隔符字符串a将名为XXX的字符串分割成子字符串数组,以这个指定的分割字串a来决定每个拆分的位置 |
比如str字符串里原先有abc defxy ghi,调用str.split(' ')将会得到一个数组,这个数组里依次是abc,defxy,ghi三个字符串,调用str.split('')将会得到一个长度为13的数组,里面依次是str字符串中的每个字符,调用str.split('xy')将会得到一个数组,这个数组里依次是abc def,ghi两个字符串,若指定的分隔字符在字符串里没有出现,比如调用str.split('z')或str.split()都将会得到一个长度为1的数组,里面是abc defxy ghi这个字符串
直接执行这些代码没有意义,你需要声明一个数组把得到的的数组存起来
1 | var newstr=str.split(' ') |
或者把得到的数组显示在控制台中
1 | console.log(str.split(' ')) |
也可以用在判断语句和循环语句中
1 | if(str.split(' ')[0] == abc) |
还可以对结果进行数组才有的操作比如arr.push(str.split(' ')[0])等
数组转字符串:join
1 | XXX.join(a)//返回一个字符串,该字符串是通过先把名为XXX的数组中的每个元素转换为字符串,然后在相邻两个元素之间插入字符串a,再把这些字符串连接起来而生成的 |
比如arr数组里原先依次是5、2、1、3、4五个数字,调用arr.join('.')将会得到字符串5.2.1.3.4,调用arr.join('')将会得到52134,注意,当调用arr.join()与arr.join(',')都将会得到5,2,1,3,4
直接执行这些代码没有意义,你可能会遇到的情况和对应的操作方法同合并字符串
字符串大小写转换
转换成大写:toUpperCase
1 | XXX.toUpperCase()//返回一个新字符串,将名为XXX的字符串中的所有字母转换成大写字母 |
比如str字符串里原先有AbcD,调用str.toUpperCase()将会得到ABCD,但str字符串里还是AbcD
所以这行代码直接执行没有意义,你可能会遇到的情况和对应的操作方法同合并字符串
转换成小写:toLowerCase
1 | XXX.toLowerCase()//返回一个新字符串,将名为XXX的字符串中的所有字母转换成小写字母 |
比如str字符串里原先有AbcD,调用str.toLowerCase()将会得到abcd,但str字符串里还是AbcD
所以这行代码直接执行也没有意义,你可能会遇到的情况和对应的操作方法同合并字符串
字符串去空格
去除头尾空格:trim
1 | XXX.trim()//返回一个新字符串,为去除名为XXX的字符串开始和结尾的空格 |
比如str字符串里原先有 a b c ,调用str.trim()将会得到a b c,但str字符串里还是 a b c
所以这行代码直接执行没有意义,你可能会遇到的情况和对应的操作方法同合并字符串
去除左侧空格:trimStart
1 | XXX.trimStart()//返回一个新字符串,为去除名为XXX的字符串中左侧的空格 |
比如str字符串里原先有 a b c ,调用str.trimStart()将会得到a b c ,但str字符串里还是 a b c
所以这行代码直接执行也没有意义,你可能会遇到的情况和对应的操作方法同合并字符串
去除右侧空格:trimEnd
1 | XXX.trimEnd()//返回一个新字符串,为去除名为XXX的字符串中右侧的空格 |
比如str字符串里原先有 a b c ,调用str.trimEnd()将会得到 a b c,但str字符串里还是 a b c
所以这行代码直接执行也没有意义,你可能会遇到的情况和对应的操作方法同合并字符串