数组api
参数是回调函数的api除了forEach,其他的回调函数都要有return
-
arr.push(value[,value2,…valueN])
- 在数组尾部添加1个或多个数据
- 返回值: 返回修改后的数组新长度
- 直接修改原数组
-
arr.pop()
- 删除数组的最后1个数据
- 没有参数
- 直接修改原数组
-
arr.concat(value[…,valueN])
- 数组扁平化:concat函数会将传入的数组参数展开将值依次放入的到数组中(对象无法展开,直接传入)
- 不修改原数组,创建新数组,将新数组作为返回值
-
arr.join(‘用于拼接字符串的连接符号’)
- 将数组内的所有元素进行toString(),然后进行拼接(若数组中含有数组,则展开数组,若含有对象,则是[object Object])
- 不修改原数组,返回新数组
- 默认用英文逗号连接
var arr=[1,2,3,4] console.log(arr.join("")) //1234 console.log(arr.join()) //1,2,3,4
-
arr.reverse()
- 没有参数
- 颠倒数组中的元素
- 直接修改原数组
-
arr.shift()
- 删除数组中的第一个元素
- 没有参数
- 直接修改原数组
- 返回被删除的元素
- 如果数组为空,返回undefined
-
arr.unshift(value[value2,…valueN])
- 在数组头部插入1个或多个数据
- 直接修改原数组
- 返回新数组的长度
-
arr.slice(start[,end])
- 截取数组片段
- 截取到的结果包含start,不包含end
- end可以取负数,没有end则从开始索引截取到尾部
- 不修改原数组,返回新数组
-
arr.sort([callback])
- 数组排序
- 直接修改原数组
- 不传回调函数默认按照字符串编码排序
//从小到大排序 arr.sort(function(a,b){ return a-b })
-
arr.toString()
- 将数组内所有元素都调用toString(),然后用","拼接
- 返回拼接后的字符串
- 推荐使用arr.join()
-
arr.splice(start[,deletecount,value,value])
var arr=[1,2,3,4] console.log(arr.splice(1,0,'2')) //[] console.log(arr) //[1,'2',2,3,4] (插入时是在指定索引的前面插入)
-
arr.indexOf(searchElement,[fromIndex=0])
- 在数组中检索某个指定的值
- 可以从指定位置开始查找
- 返回值:索引值或者-1
-
arr.forEach(callback)
- 没有返回值
var arr=[4,3,2,1] arr.forEach((value,index)=>{ //第一个参数是value //第二个参数是index })
-
arr.filter(callback)
- 遍历数组,使用逻辑表达式检测数组中的每一个元素,将结果为true所对应的值存入新数组中并返回
- 不修改原数组,返回新数组
var arr1=arr.filter(function(value,index){ return value%2 })
-
arr.map(callback)
- 遍历数组,操作数组中的每一个元素
- 不修改原数组,返回新数组
var arr1=arr.map(function(value,index){ return value*2 })
-
arr.reduce(callback[,currentValue])
- 不修改原数组,返回新数组
// 没有currentValue时 var arr=[1,2,3,4] var result=arr.reduce(function(pre,next){ console.log(pre,next) return pre+next //每一次return的结果会作为下一次循环的pre的值,直到循环结束 //第一次循环的pre是第一个值 //next是下一个值 }) console.log(result) //10
//有currentValue时 var arr=[1,2,3,4] var newArr=arr.reduce(function(result,value){ result.push(value) return result //第一次result的值时currentValue的值,后面是return的值 //value是数组的每一个元素 },['a'])
-
arr.every(callback)
- 使用逻辑表达式检测数组中的每一个元素,如果全部为true,则返回true
-
arr.some(callback)
- 使用逻辑表达式检测数组中的每一个元素,如果有一个为true,则返回true
-
arr.includes(valueToFind[, fromIndex])
- 判断一个数组是否包含一个指定的值,如果包含则返回true(一般用indexOf()代替)
字符串api
字符串也有length属性 表示字符个数 只读
-
str.charAt(index)
- 返回字符串中吃定索引的字符
-
str.charCodeAt(index)
- 查看指定索引字符串的Unicode编码 0-65535
-
String.fromCharCode(Unicode编码)
- 将Unicode编码转换成字符串
-
str.concat(value[,value2,…,valueN])
- 用于字符串的连接操作
- 一般使用"+"拼接
-
str.indexOf(searchElement[,fromIndex=0])
- 用于在字符串中查找指定的字符串片段
- 返回所匹配字符串首字符的索引 或 -1
-
str.lastIndexOf(searchElement[,fromIndex=0])
- 与str.indexOf相同,返回的索引值仍然是从头到尾计算
-
str.replace(regexp,newstring)
- 用于替换字符串,返回替换后的新字符串
注意:如果传入的第一个参数不是正则表达式,replace()函数会将其转换成正则表达式
str.replace('localhost','127.0.0.1')
-
str.slice(start[,end])
- 用于在字符串中截取字符串片段
-
str.split([string])
- 将字符串转为数组
var str='abcde' var newStr=str.split() console.log(newStr) //["abcde"] var newStr1=str.split("") console.log(newStr1) //['a','b','c','d','e']
-
str.substr(start[,length])
- 用于字符串截取
- length不写默认到最后
-
str.substring(start[,end])
- 返回截取到的start到end的字符串
-
str.toLowercase()
-
str.toUpperCase()
-
str.repeat()
- “abc”.repeat(0) // ‘’
- “abc”.repeat(1) // ‘abc’
-
str.includes()
- 用于判断一个字符串是否包含在另一个字符串中,根据情况返回true或false
-
str.trim()
- 去除字符串两端的空格
数组和字符串都有的方法
- slice
- indexOf
- lastIndexOf
- concat
- includes