JavaScript数组方法
Array.of()
返回所有参数生成的数组
定义:返回由所有参数值组成的数组,如果没有参数,就返回一个空数组。
目的:Array.of() 出现的目的是为了解决上述构造器因参数个数不同,导致的行为有差异的问题。
Array.from()
将两类对象转为真正的数组
定义:用于将两类对象转为真正的数组(不改变原对象,返回新的数组)。 参数: 第一个参数(必需):要转化为真正数组的对象。 第二个参数(可选): 类似数组的map方法,对每个元素进行处理,将处理后的值放入返回的数组。 第三个参数(可选): 用来绑定this
push 和 pop
原数组发生改变
push: 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。 pop: 数组末尾移除最后一项,减少数组的 length值,然后返回移除的项
unshift 和 shift
原数组发生改变
unshift: 可以接收任意数量的参数,把它们逐个添加到数组开头,并返回修改后数组的长度。 shift: 删除数组第一项,减少数组的 length值,然后返回移除的项。
fill() 填充数组
原数组发生改变
定义: 使用给定值,填充一个数组。 参数: 第一个元素(必须): 要填充数组的值 第二个元素(可选): 填充的开始位置,默认值为0 第三个元素(可选):填充的结束位置,默认是为this.length
splice
原数组发生改变 可以实现删除、插入和替换,返回被删除的项目。
参数1:必需。整数,规定添加/删除项目的位置(索引),使用负数可从数组结尾处规定位置。 参数2:必需。要删除的项目数量。如果设置为 0,则不会删除项目。 参数3:可选。向数组添加的新项目。
slice
浅拷贝数组的元素
slice: 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象,且原数组不会被修改。
concat
concat: 将参数添加到原数组中。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat 方法传递参数的情况下,它只是复制当前数组并返回副本。
reverse
原数组发生改变
reverse: 反转数组项的顺序。
sort
原数组发生改变
sort: 按升序排列数组项即最小的值位于最前面,最大的值排在最后面(比较的是ASCII码表的值)。 若比较函数返回值<0,那么a将排到b的前面; 若比较函数返回值=0,那么a 和 b 相对位置不变; 若比较函数返回值>0,那么b 排在a 将的前面;
join
定义: join() 方法用于把数组中的所有元素通过指定的分隔符进行分隔放入一个字符串,返回生成的字符串。 参数: str(可选): 指定要使用的分隔符,默认使用逗号作为分隔符。
indexOf
定义: 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。 参数1:必需。被查找的元素。 参数2:开始查找的位置(不能大于等于数组的长度,返回-1),接受负值,默认值为0。 注意: indexOf()不能识别NaN 数组的indexOf搜索跟字符串的indexOf不一样,数组的indexOf使用严格相等===搜索元素,即数组元素要完全匹配才能搜索成功
lastIndexOf
定义: 方法返回指定元素,在数组中的最后一个的索引,如果不存在则返回 -1。(从数组后面往前查找) 参数1:必需。被查找的元素。 参数2:逆向查找开始位置,默认值数组的长度-1,即查找整个数组。 注意: 第二个参数为正值。如果该值大于或等于数组的长度,则整个数组会被查找。 第二个参数为负值。将其视为从数组末尾向前的偏移。(比如-2,从数组最后第二个元素开始往前查找) 第二个参数为负值。其绝对值大于数组长度,则方法返回 -1,即数组不会被查找。
includes()
定义: 返回一个布尔值,表示某个数组是否包含给定的值 参数1:必需。被查找的元素。 参数2:默认值为0,参数表示搜索的起始位置,接受负值。正值超过数组长度,数组不会被搜索,返回false。负值绝对值超过长数组度,重置从0开始搜索。
遍历数组
for for …in for …of forEach map find findIndex keys values entries every some filter reduce reduceRight
尽量不要在遍历的时候,修改后面要遍历的值 尽量不要在遍历的时候修改数组的长度(删除/添加)
forEach
定义:按升序为数组中含有效值的每一项执行一次回调函数。 语法:
arr.forEach(function(val,key,arr),thisValue)参数: function(必须): 数组中每个元素需要调用的函数。 thisValue(可选): 当执行回调函数时this绑定对象的值,默认值为undefined 注意: 无法中途退出循环,只能用return退出本次回调,进行下一次回调。 它总是返回 undefined值,即使你return了一个值。
every
定义:方法用于检测数组所有元素是否都符合函数定义的条件。 方法返回值规则:如果数组中检测到有一个元素不满足,则整个表达式返回 false,且剩余的元素不会再进行检测。 如果所有元素都满足条件,则返回 true。
some
定义:数组中的是否有满足判断条件的元素。 方法返回值规则: 如果有一个元素满足条件,则表达式返回true, 剩余的元素不会再执行检测。 如果没有满足条件的元素,则返回false。
filter
定义:返回一个新数组, 其包含通过所提供函数实现的测试的所有元素。 方法返回值规则: 返回满足条件的值组成的数组。
map
定义:创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。 方法返回值规则: 对数组中的每个元素进行处理,返回新的数组
find() findIndex()
定义: find()定义:返回第一个符合条件的数组成员,如果没有符合条件的成员,则返回undefined。 findIndex()定义:返回第一个符合条件的数组成员的索引,如果所有成员都不符合条件,则返回-1。
keys() values() entries()
keys遍历键名、values遍历键值、entries遍历键名+键值 定义:三个方法都返回一个新的 Array Iterator 对象,对象根据方法不同包含不同的值。
reduce
定义:reduce() 方法对累加器和数组中的每个元素(从左到右)应用一个函数,最终合并为一个值。 语法:
arr.reduce(function(total,currentValue,currentIndex,arr),initiaValue)参数: function(必须): 数组中每个元素需要调用的函数。 total(必须),初始值, 或者上一次调用回调返回的值 currentValue(必须),数组当前元素的值 index(可选), 当前元素的索引值 arr(可选),数组对象本身 initialValue(可选): 指定第一次回调 的第一个参数。
reduceRight
定义:这个方法除了与reduce执行方向相反外,其他完全与其一致。
支付宝
微信