数组的方法
一、Array
1、创建数组的方式:
(1)使用Array构造函数:
var arr = new Array();
(2)使用数组字面量表示:
var arr = [];
2、检测数组:
Array.isArray(value) 方法; 确定某个值到底是不是数组,不管它是在哪个全局环境中创建的都可以检测出来。
3、转换方法:
toString(); 返回:由数组中每一个值的字符串形式拼接而成的一个以逗号分隔的字符串
valueOf(); 返回:数组
toLocaleString(); 返回:创建一个数组值的以逗号分隔的字符串
二、数组的方法
1、push(); 在数组末尾添加任意项 返回值:修改后数组的长度
2、unshift(); 在数组前端添加任意项 返回值:修改后数组的长度
2、pop(); 移除数组中的最后一项,从而减少length值 返回值:返回移除的项
3、shift(); 移除数组中的第一项,从而减少length值 返回值:返回移除的项
4、splice(); 返回值:返回删除的项(如果没有删除任何项,则返回一个空数组)
(1) 删除 2个参数(要删除的第一项,要删除的最后一项)
(2) 插入 3个参数(起始位置,0(要删除的项数),要插入的项) 注:可以插入多个项
(3) 增加 3个参数(起始位置,要删除的项数)
5、join(); 接收一个参数,即用作分隔符的字符串 返回值:包含所有数组的字符串
6、reverse(); 使数组颠倒 返回值:返回颠倒后的所有项
7、sort(); 根据Unicode编码对字符进行比较排序 返回值:返回排序后的所有项
可以接收一个比较函数作为参数,比较函数接收两个参数:
arr.sort(function (a,b){
return a-b; // 由小到大进行排序 a-b如果是正数就交换位置,如果是负数就不交换位置,如果两数相等返回的就是0
return b-a; // 由大到小进行排序
};)
7、concat(); 创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾 返回值:新构建的数组
9、slice(); 基于当前数组中的一或多个项创建一个新数组,接收一或两个参数(起始位置,结束位置) 返回值:返回项的起始和结束位置
注:只有一个参数时, 返回该参数执行位置开始到当前数组末尾的所有项
10、indexOf(); 接收两个参数(要查找的项(可选的),查找起点位置的索引),从前往后找 返回值:要查找的项在数组中的位置
lastIndexOf(); 接收两个参数,从后往前找
注:没找到的情况下返回 -1;
11、五个迭代方法: 每个方法都接收两个参数(每一项运行的函数,运行该函数的作用域对象—影响 this 的值)
注:传入这些方法中的函数会接收三个参数 function(数组项的值 item,该项在数组中的位置 index,数组对象本身 array){}
every(); 返回值:如果该函数对每一项都返回true,则返回true;
some(); 返回值:如果该函数对任一项返回true,则返回true;
filter(); 返回值:返回该函数会返回true的项组成的数组;
map(); 返回值:返回每次函数调用的结果组成的数组
forEach(); 没有返回值
实例:(其余方法写法都一样,只是返回值不同)
var numbers = [1,2,3,4,5,4,3,2,1];
var evetyResult = numbers.every(function (item,index,array){
return (item>2) // 返回false 只有每一项都返回true,则返回true,否则返回false
})
12、归并方法: 接收两个参数(每一项调用的函数,作为归并基础的初始值)
注:两个方法,都会迭代所有项,然后构建一个最终的返回值
传入这些方法中的函数会接收四个参数 function (前一个值 perv,当前值 cur,项的索引 index,数组对象array){}
reduce(); 从数组的第一项开始,逐个遍历到最后
reduceRight(); 从数组的最后一项开始,逐个遍历到第一项
实例: (不管是用哪个方法,主要取决于要从哪头开始遍历数组)
var arr = [1,2,3,4,5];
var sum = arr.reduce(function (prev,cur,index,array){
return prev+cur; // 15 迭代所有项,构建一个最终的返回值 15
})