昨天看了全局对象,其中Array被我一笔带过,因为东西实在太多。现在我们开看下Array的一些特性和方法。
1 创建或者表示一个数组,有三种方法
字面量表示 [1,2,3]
使用new构建函数 new Array(1,2,3)
创建一个固定长度的数组 new Array(7)
2 属性
length: 数组长度
[index]: 数组中单个值
prototype: 原型
3 方法
Array.from(): 将类数组或者可以迭代的对象生成新数组,有三个参数:
第一个是类数组或者对象,第二个是对数组里的元素进行操作的方法,第三个参数
代表当前this,
Array.isArray(): 判断参数是否是数组类型
Array.of(): 生成新数组,将参数转换为数组内的元素
Array.prototype.construct: 数组原型的构造函数,length属性为1
Array.copyWithin(): 允许数组将一个部分的元素复制到数组其他地方,方法有三个三个参数,第一个是替换的位置,第二个是复制的起始位置,第三个是复制的结束位置,如果忽略默认到最后。
Array.fill(): 将一个固定的值填充到数组,第一个参数就是被填充的固定值,第二个和第三个是起始和结束位置,同样第三个参数省略将会默认到数组最后
Array.pop(): 切割掉数组的最后一个元素,返回的是最后一个元素,不会生成新数
组。
Array.push(): 添加到一个元素到数组最后,返回的是数组的长度,可
以用push和apply方法快速合并两个数组
Array.reverse(): 数组取反,位置颠倒
Array.shift(): 删除数组的第一个元素,返回第一个元素,不返回新数组
Array.sort(): 默人是升序排列,可以用函数表示a-b 表示正序,b-a表示倒序,返回排序后的数组
Array.splice(): 多个参数,第一个参数是删除的位置,第二个是删除结束的位置,不包括这个,后面的参数是插入的参数,返回切割组成数组,不返回新数组
Array.unshift(): 在数组头部添加一个新元素,返回数组的长度
Array.concat(): 合并多个参数数组,返回一个新数组
Array.includes(): 判断一个数组是否含有此元素,此方法有两个参数,第一个参数
是元素,第二个是判断起始的位置
Array.indexOf(): 判断元素在数组中的位置,同样有两个参数,第一个是元素,第二个是起始位置
Array.join(): 将参数来将数组中的元素合并起来
Array.lastIndexOf(): 和indexOf类似,不过是从数组末尾查询。
Array.slice(): 切割数组返回一个新数组,原数组并不改变,有两个参数,分别是起始位置和结束位置,其中结束位置为负数,表示结束位置是倒数第几个元素。
3 数组的遍历
for (var i =0;i<arr.length;i++){...}
for循环,遍历数组的index值,单个求值
forEach: 也是遍历数组,有三个参数,item,index,arr分别表示数组当前位置的元素,index值,和整个数组,不用return
map: 遍历数组中的元素,返回的是一个新数组,和foreach有相同的三个参数,
需要reuturn
for in: for(let key in arr ){...},遍历数组中的index值
for of: for(let item of arr){...} 遍历数组中的元素
reduce(prev,current,index,arr): 为数组中的每个元素执行一个回调函数,有四个参数,分别是前一个元素,当前元素,当前index值和数组,需要return
filter: 和forEach一样有三个相同的参数,filter返回符合回调函数条件的元素组成的数组,需要return,
find(): 和forEach一样有三个相同的参数,返回符合条件的第一个元素
tips: 上面这些es5的方法,遍历的元素为空都会略过
网友评论