//栈
push()
可接受任意类型的参数,将他们逐个添加到数组的末尾,并返回数组的长度
pop()
从数组的末尾删除最后一项,减少数组的length值,返回移除的项
//队列
unshift()
在数组的前面增加任意个项,并返回新数组的长度
shift()
删除数组的第一个项并返回该项,同时将数组的长度减1
//判断是否是数组
Array.isArray()
结果为true,判断数组是否是array类型
//排序
sort()
(1)直接修改原数组;
(2)默认按照数组元素第一位的ASCII码值从小到大排列
默认排序:该方法会调用每个数组的toString()方法,然后按照字符序列排序(ASCII),参数,不传参
自定义排序:该方法可以接收一个比较函数作为参数,比较函数有两个参数
第一个参数位于第二个参数之前,返回负数
第一个参数位于第一个参数之后,返回正数
默认排序:
var arr1=[3,4,2,6,1];
var result=arr1.sort();
console.log(result);//1,2,3,4,5,6
console.log(arr1);//1,2,3,4,5,6
var arr2=[10,1,23,2];
//console.log(arr2.sort());
arr2.sort();
console.log(arr2);//1,10,2,23
console.log(arr1.reverse());
console.log(arr2.reverse());
//自定义排序 过程--函数作为参数
例子:
var arr = [11,5,23,7,4,1,9,1];
console.log(arr.sort(compare));
//该比较函数适合于大多数数据类型
function compare(v1,v2){
if(v1>v2){return -1;} //升序
else if( v1<v2){return 1;} //降序
else{return 0;}
}
arr.reverse()
反转数组项的顺序,直接修改原数组
//数组序列化
arr.join()
使用指定的字符(连接符)来分隔数组字符串
使用Array.prototype中的 实例方法join()
//应用场景:纯净的数据环境 指定连接符
var str1=arr.join();//,
var str2=arr.join('@');//@
var str3=arr.join('java script');
console.log(str1,str2,str3);
arr.join(“”)能无缝连接
toString()
在默认情况下都会以逗号分隔字符串的形式返回数组项
//数组检测
var arr();
typeOf(); //结果为object
arr instanceof Array //结果为true,在同一个全局作用域下可以这么判断
Array isArray(arr); //结果为true,判断arr是否是数组类型
//截取方法
concat()
通过合并连接数组来创建一个新数组,该方法不会更改现有数组,而是返回一个新数组,concat()可以使用任意数量的数组参数
slice()
数组的切割,在数组的某一片段切割,产生新的数组,原数组不会发生任何改变,slice(index_start,index_end);index_end 可写可不写,比如slice(2,4)右边是开区间,不会被截取,左边是闭的,(start,end],如果end被省略,则会切出数组后面的剩余部分.
举例:
var r4=arr2;//简单的地址值的复制,浅拷贝,指向的是同一片内存空间
var r1= arr2.slice(0);//arr2堆中的数据-->r1堆中 深拷贝 指向的不是同一片内存空间
splice()
用于数组删除,插入,替换
原数组会受到影响,返回值就是删除掉的数据项,
splice(index_start,count,新增的内容(可省略)) count表示从索引值开始删除几个内容,如果索引值为负值,就是去倒序查找
//索引方法
通过数据项的值去查找在数据中的索引位置
indexof()
从数组开头向后查找,使用全等操作符,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置
lastIndexOf()
从数组末尾向前查找,使用全等操作符,找不到该元素返回-1。第一个参数为要查找的 项,第二个参数(可选)为索引开始位置
//迭代方法
every()
给数组中的每一项运行给定的函数,都满足要求就返回true,不满足就返回false
var arr = [11,5,23,7,4,1,9,1];
var result = arr.every(function(item,index,arr){
return item >2;
});
console.log(result); //false
some()
给数组中的每一项运行给定的函数,有一个满足要求的就返回true
var arr = [11,5,23,7,4,1,9,1];
var result = arr.every(function(item,index,arr){
return item >2;
});
console.log(result); //true
filter()
过滤,给数组中的每一项运行给定的函数,满足要求的保存起来,不满足的不要,返回的是满足要求的数据项组成的数组.
var arr = [11,5,23,7,4,1,9,1];
var result = arr.filter(function(item,index,arr){
return item >2;
});
console.log(result); // [11, 5, 23, 7, 4, 9]
map()
一一映射,对数组中的每一项运行给定的函数,返回每次函数调用的结果形成的数组
var arr = [11,5,23,7,4,1,9,1];
var result = arr.map(function(item,index,arr){
return item * 2;
});
console.log(result); // [22, 10, 46, 14, 8, 2, 18, 2]
forEach()
迭代循环:对数组中的每一项运行给定的函数,没有返回值,常用来遍历元素
var result = arr.forEach(function(item,index,arr){
console.log(item);
});