构建数组
var colors = new Array();
指定数组的大小
var colors = new Array(20);
或者指定数组里面的内容
var colors = new Array("red", "blue","green");
length可以删除/添加末尾的元素
var colors = ["red", "yellow", "green"];
colors.length = 2; // 此时green就被删除了
检测数组
1、instanceof instanceof用于判断一个变量是否是某个对象的实例
var a = [1,2,3,5];
a instanceof Array; // 输出为true
2、Array.isArray(a); // true
3、 利用constructor
a instanceof Array; //true
a.constructor == Array; // true
4、Object.prototype.toString.call(a);
// 输出 "[object Array]"
栈方法
push()方法可以接受任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度
pop()方法可以从数组末尾移除最后一项,减少数组的length值,然后返回移除项
// 注意注意 高能高能 push是返回修改后数组的长度 pop是返回移除的项 栈---后进先出,从菊花进入从菊花输出
队列方法
push() ...
shift() 方法从数组中获取第一项,移除第一项以后并返回该项,同时数组长度减1
// 队列----先进先出 从菊花进入,从嘴巴输出 好恶心。。。。。。。。。。
另外 unshift 是可以在数组前端添加项 利用pop和unshift 可以反向模拟队列
重排序方法
reverse() 数组反转
sort() 排序 传入一个function作为参数
该函数接受两个参数 如果第一个参数应该位于第二个参数之前则返回一个负数
如果两个参数相等则返回0
如果第一个参数应该位于第二个参数之后则返回一个正数
操作方法
1、 concat() 数组拼接 -------- 浅拷贝
var colors = ["red", "green", "blue"];
colors.concat("yellow", ["black", "brown"]); // 返回的是一个新数组
2、slice() 数组切割
接受一个或两个参数,第一个参数返回从该参数指定位置开始到当前数组末尾的所有项,如果有两个参数,表示返回起始和结束位置之间的项 (不包括结束位置的项)
3、最强大的数组方法 splice
-- 删除
-- 插入
-- 替换
有三个参数
-- 第一个参数 表示 要删除的位置 index
-- 第二个参数 要删除的个数 length
-- 第三个参数-第N个参数 (可选)用于替换或者删除
// 返回的是被删除的数组
var colors = ["red", "green", "blue"];
// 删除
var remove = colors.splice(0,1);
// 增加数组
colors.splice(1, 0, "yellow", "orange");
// 替换
colors.splice(1,1,"red", "orange");
位置方法
1、indexOf 查找某个数在数组中的位置,没有就返回-1 array.indexOf(number);
2、lastIndexOf 从数组的末尾开始向前查找
迭代方法
迭代方法需要传入一个函数作为参数,这个函数有三个参数 item, index, array //item是数组的项,index是位置,array是数组的本身
--- every() // 比较每一项,如果每一项都符合就返回true
-- filter() // 比较每一项,返回该函数会返回true的项组成的数组
-- forEach() // 给数组中的每一项指定函数
-- map() //对数组中每一项指定函数,返回每次函数调用的结果组成的数组
-- some() // 只要任一项目为true就返回true --为啥不直接用indexOf呢
递归方法
-- reduce() // 传入一个函数 函数有四个参数 prev, cur, index, array -- 前一项,当前项,位置, 当前数组
数组从前往后
-- reduceRight() // 数组从后往前