数组的方法
增删改查类
arr.push() 从后面添加元素,返回值为添加完后的数组的长度
arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素
arr.shift() 从前面删除元素,只能删除一个,返回值是删除的元素
arr.unshift() 从前面添加元素, 返回值是添加完后的数组的长度
arr.splice(i,n) 删除从i(索引值)开始之后的那个元素。返回值是删除的元素 (i 索引值,n 个数)
数组的其他方法
arr.concat() 连接两个数组 返回值为连接后的新数组
arr.sort() 将数组进行排序,返回值是排好的数组,按照ASCII码进行排序。
// arr.sort((a,b) => a-b) 可以传入一个回调函数,判断a-b的返回值,大于0,从小到大排序。
arr.reverse() 将数组反转,返回值是反转后的数组
arr.slice(start,end) 切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组
str.split() 将字符串转化为数组
---es6 Array.from()
// 将伪数组变成数组,就是只要有length的就可以转成数组。
---es6 Array.of(n)
// 将一组值转换成数组,类似于声明数组
// Array.of(n) => [n]
new Array(n)
// 生成一个长度为n的空数组[n*empty]
数组的遍历方法
arr.forEach((value, index, array) => {})
// 没有return, 即使有return,也不会返回任何值,并且会影响原来的数组
value --当前索引的值
index --索引
array --原数组
arr.map((value, index, array) => {})
// 自带return,返回一个长度相等的数组
arr.filter((value, index) => {value>3})
// 过滤数组,自带return,返回一个满足条件为true的数组
arr.every((value, index) => {value>3})
// 依据判断条件,数组的元素是否全满足,若满足则返回ture
arr.some((value, index) => {value>3})
// 依据判断条件,数组的元素是否有一个满足,若有一个满足则返回ture
arr.indexOf()
// 查找某个元素的索引值,若有重复的,则返回第一个查到的索引值若不存在,则返回 -1
arr.lastIndexOf() 和arr.indexOf()的功能一样,不同的是从后往前查找
arr.find((value, index, array) =>value > 2)
// 找到第一个符合条件的数组成员
arr.findIndex((value, index, array) =>value > 2)
// 找到第一个符合条件的数组成员的索引值
arr.includes()
// 判断数中是否包含给定的值
* indexOf()返回的是索引值,arr.includes()返回的是boolean
arr.keys()
// 遍历数组的键名
arr.values()
// 遍历数组键值
arr.entries()
// 遍历数组的键名和键值
arr.reduce((total, currentValue, currentIndex, arr), initialValue)
// 接收一个函数作为累加器,累加的值放在total
// total 必需。初始值, 或者计算结束后的返回值。
// currentValue 必需。当前元素
// currentIndex 可选。当前元素的索引
// arr 可选。当前元素所属的数组对象。
// initialValue 传递给函数的初始值
reduce的高级用法
- 数组去重
const arr = [1,2,4,5,6,3,2]
const newArr = arr.reduce((total,curr) => {
if (total.includes(curr)) {
return total
} else {
return total.concat(curr) // 此处不能用push,会报错 total undefined
}
}, [])
- 将多维数组转化成一维
let arr = [[0, 1], [2, 3], [4,[5,6,7]]]
const newArr = function(arr){
return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
}
console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7]
正则相关
字符串的方法
str.toLowerCase()
// 把字符串转为小写,返回新的字符串。
str.toUpperCase()
// 把字符串转为大写,返回新的字符串。
str.charAt()/str.charCodeAt()
// 返回指定下标位置的字符。如果index不在0-str.length(不包含str.length)之间,返回空字符串。
// 返回制定下标位置的unicode编码,返回值是 0 - 65535 之间的整数。
str.indexOf('str', index) / str.lastIndexOf('str', index)
// 返回某个指定的子字符串在字符串中第一次出现的位置
// 第一个参数为查找的值,区分大小写
// 第二个参数为开始查找索引的位置
str.slice(n, [m])
// 返回字符串中提取的子字符串。
// n,m为截取字符串的索引位置,m不写,表示截取n开始到索引最后以为的字符串
str.substring()
// 用法同上,但不支持负数
str.substr(n, m)
// 返回从指定下标开始指定长度的的子字符串
// n表示开始截取的索引,m表示截取的长度
str.split() --支持正则表达式
// 将字符串分割成字符串数组,或者以正则的内容进行分割
str.replace() --支持正则表达式
// 在字符串中用一写字符替换成另一些字符
str.match() --支持正则表达式
// 返回所有查找的关键字内容的数组。
网友评论