创建方式
-
constructor 构造器
-
new Array();创建一个空数组。
-
new Array(arrayLength);创建固定初始长度的数组。
参数说明:数组初始长度。可以通过长度属性
.length访问该值。* 数组元素初始值都是Null。
* 如果将值分配给大于数组当前长度的元素,则数组的长度会增加。
-
new Array(element0, element1, ..., elementN); new Array(element0, element1, ...elements);创建数组并赋予初始值(支持结构传参)。
参数说明:数组元素的值列表。指定此形式时,将使用指定值作为其元素来初始化数组,并将数组的长度属性设置为参数的数量。
-
-
literals 直接量
-
[];创建一个空数组。
-
[element0, element1, ..., elementN]; [element0, element1, ...elements];创建数组并赋予初始值(支持结构传参)。
参数说明:数组元素的值列表。
-
-
factory 工厂方法
-
Array.of();
Array.of(element0, element1, ..., elementN);创建数组并赋予初始值(支持结构传参)。
参数说明:数组元素的值列表。
-
Array.form();
Array.form(array, callback);迭代遍历array,如果callback存在则将每个元素带入回调中执行返回执行后的元素,生成一个新的数组。
参数说明: array 源数组。
callback(可选) 执行回调。
-
读写方式
数组是通过下标访问的,初始下标为0。
-
读
array[index]; -
写
array[index] = value; -
获取数组长度
array.length;假如数组长度为 i,当我们设置一个索引为 i+n 的元素,该数组的 length 属性为自动变为 i+n
假如数组长度为 i,当设置 length=i-n 时,i-n 索引之后的元素会被删除
数组操作会自动更新 length 属性
delete 操作符删除数组元素,数组的 length 属性不会变
delete a[2]删除索引为 2 的元素,索引为 2 的元素变为 undefined,a.length 不变
-
数组判断
Array.isArray(array); -
类数组验证
function idArrayLike(param) { if (param && typeof param === 'object' && Number.isFinite(param.length) && param.length >= 0 && Number.isInteger(param.length) && param.length < 4294967295) return true; else return false; } -
读取字符串
JavaScript 的字符串类似于只读数组
string.charAt(index); string[index];
API
基础Api
-
push()
语法:数组.push(数据1,数据2,数据3,...) 作用:把所有参数按照顺序追加到数组末尾位置 返回值:追加以后数组的长度 直接操作数组
-
pop()
语法:arr.pop(数据1,数据2,数据3) 作用:删除数组的最后一个数据 返回值:被删除的数据 直接操作原始数组
-
unshift()
语法:arr.unshift(数据1,数据2,数据3) 作用:从数组最前面插入数据 返回值:插入后的数组长度 直接操作数组
-
shift()
语法:arr.shift() 作用:删除数组最前面的数据 返回值:删除的数据 直接操作数组
ES3 Api
-
reverse()
语法:arr.reverse() 作用:反转数组 返回值:反转以后的数组 直接操作数组
-
sort()
arr.sort()---按位排序 返回值:排序好的数组 直接操作数组
-
splice()
arr.splice(开始截取的索引,截取多少个)---第二个参数可以不写,不写代表截取到末尾 arr.splice(开始索引,多少个,替换数据1,替换数据2 ,替换数据3)---从索引位置开始截取n个字符串,截取掉的位置用替换数据填充 返回值:截取出来的数组 直接操作数组
-
concat()
arr.concat(数组1,数组2...)---追加数据 如果参数是数组,那么把数组拆开,里面每一项追加到原数组后面。如果参数是数据,那么直接追加 返回值:追加好的数组 不改变原始数组
-
slice()
arr.slice(开始索引,结束索引)---获取数组里的某些数据 第一个参数不写表示从头,第二个参数可以不写表示到位。参数可以是负整数,表示length+负整数 返回值:一个包含截取数据的新数组 不改变原始数组
-
join()
arr.join('连接符号')----把数组里面的每一个数据使用连接符号连接在一起 不传递参数默认按照逗号连接 返回值:一个连接好的字符串 不改变原始数组
ES5 Api
-
indexOf()
arr.indexOf(数据)---正向查看数组里面指定数据的索引 arr.indexOf(数据,开始索引)---从指定索引位置开始向后查找指定数据的索引 返回值:找到该数据,返回该数据的索引;没找到返回-1
-
lastIndexOf()
arr.indexOf(数据)---反向查看数组里面指定数据的索引 arr.indexOf(数据,开始索引)---从指定索引位置开始向前反向查找指定数据的索引 返回值:找到该数据,返回该数据的索引;没找到返回-1
-
forEach()
arr.forEach(function(item,index,arr){})---取代for循环的作用遍历数组 item:数组每一项,index:数组每一项索引,arr:原始数组 没有返回值
-
map()
arr.map(function(item,index,arr){})----映射数组 返回值:一个新的数组,里面是对原属数组每一个数据的操作,和原数组长度一样 不改变原始数组
-
filter()
arr.filter(function(item,index,arr){})---过滤原始数组中的 数据,把满足条件的数据放在新数组里面 返回值:一个满足条件的新数组 不改变原始数组
-
every()
arr.every(function(item,index,arr){})---判断函数里是不是每一项都满足条件 返回值:一个布尔值。如果数组中每一项都满足条件,那么返回true,如果任意一个数据不满足条件,那么返回false 不改变原始数组
-
some()
arr.some(function(item,index,arr){})---判断数组里是不是有某一项满足条件 返回值:布尔值,只要原始数组中有一个数据满足条件,那么返回true,如果所有数据都不满足条件,那么返回false
ES6 Api
-
find()
arr.find(function(item){})---根据条件找到满足条件的数据 返回值:满足条件的数据
-
findIndex()
arr.findIdenx(function(item){})---根据条件找到满足的数据 返回值:找到满足条件的数据的索引
-
flat()
arr.flat(数字)---拍平数组 数字表示扁平化都少层 返回值:拍平以后的数组
-
flatMap()
arr.flatMap(function(item.index,arr){})---一边拍平一边映射,只能拍平一层
-
fill()
arr.fill(填充的数据,开始索引,结束索引)---使用指定数据填充指定索引位置 填充内容:你想用什么数据填充数组里面的索引位置 开始索引:从哪个索引位置开始填充,默认是0 结束索引:填充到索引位置,默认是末尾
-
inclodes()
arr.includes(数据)---查看数组里面是否包含某个数据 返回值:布尔值。如果有返回true,如果没有返回false
-
copyWithin()
arr.copyWithin(目标位置,开始索引,结束索引)---用数组里面的内容替换数组里面的内容 目标位置:从哪个索引位置开始替换 开始索引-结束索引:作为替换内容