1.数组原型上的方法
- push
- 在数组末尾新增1个或多个数据
- 返回新增后数组的长度
- pop
- 删除数组末尾的一项数据
- 返回被删除的数据
- unshift
- 在数组头部新增1个或多个数据
- 返回新增后数组的长度
- shift
- 删除数组头部的一项数据
- 返回被删除的数据
- reduce
- 第一个参数是一个callback函数,该函数接收4个参数
- 累计器
- 当前值
- 当前索引
- 源数组
- 返回值:分配给累计器
- 第二个参数:作为第一次调用
callback函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错
- 第一个参数是一个callback函数,该函数接收4个参数
- reverse
- 将数组中元素的位置颠倒
- 返回改变后的数组(该方法会改变原数组)
- 该方法会改变原数组
- sort
- 对数组的元素进行排序,默认会将元素转换为字符串
- 返回排序后的数组(该方法会改变原数组)
- splice
- 删除或添加元素
- 可接收多个参数
- start:要删除元素的开始位置,可为负数
- deleteCount: 可选,表示要删除元素的
个数,如果deleteCount是 0 或者负数,则不删除元素 - value1, value2,...: 要添加进数组的元素,从
start位置开始。如果不指定,则splice()将只删除数组元素。
- 返回被删除的元素组成的一个数组
- slice
- 截取数组
- 可接收两个参数
- begin: 可选。截取起始处的索引,可为负数。若没有begin,则从0开始
- end: 可选。截取结束的索引,但截取时
不包括索引为end的位置。可为负数。若没有end,则代表截取到数组末尾。
- 不会修改原数组
- 返回被截取出来的新数组
- Array.prototype.slice.call(arguments) 将类数组转为数组 ([].prototype.slice.call(arguments))
- concat
- 合并两个或多个数组
- var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
- value 可以是数组或值
- 不会修改原数组
- 返回合并后的新数组
- copyWithin
- 浅复制数组的一部分到同一数组中的另一个位置
- arr.copyWithin(target[, start[, end]])
-
target:复制序列到该位置,可以为负数。若target大于数组长度,则不会复制,如果
target在start之后,复制的序列将被修改以符合arr.length -
start: 复制元素的起始位置,可以为负数。若没有start,则从0开始复制。
-
end: 复制元素的结束位置,但不包括end这个位置,可以为负数。若没有end,则默认复制到数组的末尾。
-
- 会改变原数组,但不会修改
原数组的长度
[1, 2, 3, 4, 5].copyWithin(-2) // [1, 2, 3, 1, 2] [1, 2, 3, 4, 5].copyWithin(0, 3) // [4, 5, 3, 4, 5] [1, 2, 3, 4, 5].copyWithin(0, 3, 4) // [4, 2, 3, 4, 5] [1, 2, 3, 4, 5].copyWithin(-2, -3, -1) // [1, 2, 3, 3, 4]- 返回浅复制后的数组
- join
- 将一个数组的所有元素连接成一个字符串并返回这个字符串
- arr.join([separator]) separatormore为','
- Array.prototype.join.call(arguments)
- indexOf
- 返回在数组中可以找到一个给定元素的
第一个索引 - 没有找到,返回-1
- 返回在数组中可以找到一个给定元素的
- lastIndexOf
- 返回在数组中可以找到一个给定元素的
最后一个索引 - 没有找到,返回-1
- 返回在数组中可以找到一个给定元素的
- forEach
- 对数组的每个元素执行一次给定的函数
- arr.forEach(callback(currentValue [, index [, array]])[, thisArg])
- 除了抛出异常以外,没有办法中止或跳出
forEach()循环
- map
- 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值
- 不会改变原数组
- filter
- 创建一个新数组, 其包含通过所提供函数实现的测试的所有元素
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present']; const result = words.filter(word => word.length > 6); console.log(result); // expected output: Array ["exuberant", "destruction", "present"] - every
- 测试一个数组内的所有元素是否都能通过某个指定函数的测试
- 每一次测试都为true, 返回true, 否则返回false
- 如果用一个空数组进行测试,在任何情况下它返回的都是
true
- some
- 测试数组中是不是至少有1个元素通过了被提供的函数测试
- 至少一个元素通过回调函数的测试就会返回true;所有元素都没有通过回调函数的测试返回值才会为false
- 如果用一个空数组进行测试,在任何情况下它返回的都是
false
- fill
- 用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引
- arr.fill(value[, start[, end]])
- 返回填充后的数组
- includes
- 判断一个数组是否包含一个指定的值
- 返回一个布尔值
- find
- 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
- findIndex
- 返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回-1。
- flat
- 数组扁平化
- var newArray = arr.flat([depth])
- depth表示扁平的深度,默认为1. depth为Infinity,可展开任意深度的嵌套数组
flat()方法会移除数组中的空项
- keys
- 返回一个包含数组中每个索引键的
Array Iterator对象 - 返回一个新的Array迭代器对象
- 返回一个包含数组中每个索引键的
- values
- 返回一个新的
Array Iterator对象,该对象包含数组每个索引的值
- 返回一个新的
- entries
- 返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对
- Array.from, Array,isArray不是数组原型上的方法
- 字符串原型上的方法
- charAt
- 从字符串中获取指定索引的字符
- str.charAt(index) index默认为0
- 返回指定的字符,若index超出长度,则返回一个空字符串
- charCodeAt
- 指定
index处字符的 UTF-16 代码单元值的一个数字(0到65535之间的整数) - 如果
index超出范围,charCodeAt()返回NaN
- 指定
- concat
- 连接2个或多个字符串
- 返回连接后的字符串
- 建议用+, +=代替concat方法
- includes
- 判断一个字符串是否包含在另一个字符串中, 区分大小写
- str.includes(searchString[, position])
- indexOf
- 返回str中第一次出现的指定值的索引,没有则返回-1
- match
- 返回一个字符串匹配正则表达式的结果
- str.match(regexp)
- 返回值
- 如果使用g标志,则将返回与完整正则表达式匹配的所有结果,但不会返回捕获组
-
- 如果未使用g标志,则仅返回第一个完整匹配及其相关的捕获组(
Array)。 在这种情况下,返回的项目将具有如下所述的其他属性。
- 如果未使用g标志,则仅返回第一个完整匹配及其相关的捕获组(
- 附加属性
index: 匹配的结果的开始位置input: 搜索的字符串groups: 一个捕获组数组 或undefined(如果没有定义命名捕获组)
- 如果正则表达式不包含
g标志,str.match()将返回与RegExp.exec()相同的结果 - 不传参,返回 [""]
- matchAll
RegExp必须是设置了全局模式g的形式,否则会抛出异常TypeError
const regexp = /t(e)(st(\d?))/g; const str = 'test1test2'; const array = [...str.matchAll(regexp)]; console.log(array[0]); // Array ["test1", "e", "st1", "1", ...] console.log(array[1]); //Array ["test2", "e", "st2", "2", ...]- 返回一个包含所有匹配正则表达式的结果及分组捕获组的迭代器
- repeat
- 重复了多少遍原字符串
- str.repeat(count)
- 返回一个新的字符串
- replace
- str.replace(substr, newSubStr)
- str.replace(regexp, function/newSubStr )
- 不会修改原字符串
- 返回一个新的替换后的字符串
- replaceAll
- 当使用一个
regex时,必须设置全局(“ g”)标志
- 当使用一个
- search
- 执行正则表达式和str之间的一个搜索匹配
- 返回正则表达式在字符串中首次匹配项的索引;否则,返回
-1
- slice
- 截取字符串
- str.slice(beginIndex[, endIndex]) 不包括endIndex。endIndex支持负数
- 不会修改原字符串
- 返回一个从原字符串中提取出来的新字符串
- split
- 将字符串转为数组
- substr
- str.substr(start[, length])
length为 0 或负值,返回'' - 返回一个字符串中从指定位置开始到指定字符数的字符
- str.substr(start[, length])
- substring
- 截取从
indexStart到indexEnd(不包括)之间的字符 - indexEnd不支持负数
- 截取从
- toLowerCase
- 将字符串转为小写
- 不改变原字符串
- toUpperCase
- 将字符串转为大写
- 不改变原字符串
- trim
- 去除字符串两端的空白
- 不改变原字符串