目录
一、简介
Array 对象数组用于在单个的变量中存储多个值。
1、属性
Array数组 对象属性
属性 | 描述 |
---|---|
constructor | 返回对创建此对象的数组函数的引用。 |
length | 设置或返回数组中元素的数目。 |
prototype | 使您有能力向对象添加属性和方法。 |
2、创建
a、构造函数
new Array();//无参数 创建一个空的Array数组,成员为空,length长度为0。
new Array(size);//参数size:数组成员的数量,也是数组的长度length属性的值。
new Array(element0, element1, ..., elementn);//参数 element0...表示创建数组的每个成员,
//可以是任意数据类型包括函数function。
let a = new Array('a', 'b', function() {
console.log('这是Array里的函数!')
}, 'c');
a[2]();
//console:这是Array里的函数!
使用构造函数创建数组new 不写和写的行为效果一致。
b、数组[ ]
let array = [1,2];
let arrayObject = ['a',function(){
console.log('来自array的函数!');
},];
构造函数创建的数组因传入的参数不同返回的数组也不同
二、方法
静态方法
方法名称 | 说明 |
---|---|
Array.isArray() | 方法返回一个布尔值,表示参数是否为数组。它可以弥补 typeof 运算符的不足。 |
实例方法
方法名称 | 说明 |
---|---|
valueOf() | valueOf 方法是一个所有对象都拥有的方法,表示对该对象求值。不同对象的 valueOf 方法不尽一致,数组的 valueOf 方法返回数组本身。 |
toString() | toString 方法也是对象的通用方法,数组的 toString 方法返回数组的字符串形式。 |
push() | push 方法用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。 |
pop() | pop 方法用于删除数组的最后一个元素,并返回该元素。注意,该方法会改变原数组。 push 和 pop 结合使用,就构成了“后进先出”的栈结构(stack)。 |
shift() | shift() 方法用于删除数组的第一个元素,并返回该元素。注意,该方法会改变原数组。 shift() 方法可以遍历并清空一个数组。 |
unshift() | unshift()方法用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。 unshift() 方法可以接受多个参数,这些参数都会添加到目标数组头部。 |
join() | join() 方法以指定参数作为分隔符,将所有数组成员连接为一个字符串返回。如果不提供参数,默认用逗号分隔。 如果数组成员是 undefined 或 null 或空位,会被转成空字符串。 通过 call 方法,这个方法也可以用于字符串或类似数组的对象。 |
concat() | concat 方法用于多个数组的合并。它将新数组的成员,添加到原数组成员的后部,然后返回一个新数组,原数组不变。 除了数组作为参数, concat 也接受其他类型的值作为参数,添加到目标数组尾部。 如果数组成员包括对象, concat 方法返回当前数组的一个浅拷贝。所谓“浅拷贝”,指的是新数组拷贝的是对象的引用。 |
reverse() | reverse 方法用于颠倒排列数组元素,返回改变后的数组。注意,该方法将改变原数组。 |
slice() | slice() 方法用于提取目标数组的一部分,返回一个新数组,原数组不变。 如果 slice() 方法的参数是负数,则表示倒数计算的位置。 slice() 方法的一个重要应用,是将类似数组的对象转为真正的数组。 |
splice() | splice() 方法用于删除原数组的一部分成员,并可以在删除的位置添加新的数组成员,返回值是被删除的元素。注意,该方法会改变原数组。 splice 的第一个参数是删除的起始位置(从0开始),第二个参数是被删除的元素个数。如果后面还有更多的参数,则表示这些就是要被插入数组的新元素。 如果只是单纯地插入元素, splice 方法的第二个参数可以设为 0 。 如果只提供第一个参数,等同于将原数组在指定位置拆分成两个数组。 |
sort() | sort 方法对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变。 |
map() | map 方法接受一个函数作为参数。该函数调用时, map 方法向它传入三个参数:当前成员、当前位置和数组本身。 map 方法还可以接受第二个参数,用来绑定回调函数内部的 this 变量。 |
forEach() | forEach 方法与 map 方法很相似,也是对数组的所有成员依次执行参数函数。但 是, forEach 方法不返回值,只用来操作数据。这就是说,如果数组遍历的目的是为了得到返回值,那么使用 map 方法,否则使用 forEach 方法。 forEach 的用法与 map 方法一致,参数是一个函数,该函数同样接受三个参数:当前值、当前位置、整个数组。 |
filter() | filter 方法用于过滤数组成员,满足条件的成员组成一个新数组返回。 它的参数是一个函数,所有数组成员依次执行该函数,返回结果为 true 的成员组成一个新数组返回。该方法不会改变原数组。 |
some() | 这两个方法类似“断言”(assert),返回一个布尔值,表示判断数组成员是否符合某种条件。 some 方法是只要一个成员的返回值是 true ,则整个 some 方法的返回值就是 true ,否则返回 false 。 every 方法是所有成员的返回值都是 true ,整个 every 方法才返回 true ,否则返 |
every() | |
reduce() | reduce 方法和 reduceRight 方法依次处理数组的每个成员,最终累计为一个值。它们的差别是, reduce 是从左到右处理(从第一个成员到最后一个成员), reduceRight 则是从右到左(从最后一个成员到第一个成员),其他完全一样。 |
reduceRight() | |
indexOf() | indexOf 方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回 -1 。 indexOf 方法还可以接受第二个参数,表示搜索的开始位置。 |
lastIndexOf() | lastIndexOf 方法返回给定元素在数组中最后一次出现的位置,如果没有出现则返回 -1 。 |