Javascript数组方法总结

构造数组
var arr1 = new Array();
var week = new Array(7);//可以省略new,长度为7
var colors = new Array("red","blue","yellow");
var colors = ["red","blue","yellow"];
var arr2 = [];//空
 
检测数组
value instanceof Array
Array.isArray(value)
 
转换方法
arr.toString();//返回字符串
arr.valueOf();//返回数组
arr.toLocaleString();//会调用每一项的toLocaleString()方法
 
栈方法
arr.push('str1','str2');//添加到末尾,参数不限,返回数组长度
arr.pop();//移除末尾一项,返回移除的项,数组长度减一
 
队列方法
arr.shift();//移除并返回第一项,结合push可做队列使用
arr.unshift();//在开始处添加任意项,返回新数组长度,结合pop,方向模拟队列
 
重排序方法
arr.sort();//升序排列,按字符串顺序
arr.recerse();//降序
 
function compare(value1,value2){
    if( value1 < value2 ){
        return -1;
    }else if(value1 > value2){//前面大于后面的
        return 1; //交换
    }else{
        return 0;
    }
}
 
//更简单的实现
function compare(value1,value2){
    return value2-value1;
}
 
arr.sort(compare);//将比较函数传递到排序中,得到按数值的升序
 
操作方法
arr.concat();//可传入一个或多个数组,不是数组,则添加到末尾
arr.slice(1);//从1开始到末尾的新数组
arr.slice(1,4);//从1到3的新数组
 
//splice()返回的是从原始数组中删除的项所组成的数组
arr.splice(1,2);//删除第1项开始的2个项
arr.splice(2,2,'newstr');//删除第2项开始的2项,再插入新的项,可以一个或多个,如果第二个参数为0,则仅插入
位置方法
//查找某一项第一次出现的位置,没找到返回-1
arr.indexOf(4);//从位置0开始查找4的位置
arr.lastIndexOf(4);//从末尾向前查找4的位置
 
arr.indexOf(4,4);//从位置4开始向后查找4的位置
arr.lastIndexOf(4,4);//从位置4开始向前查找4的位置
 
迭代方法     
//每个方法接受两个参数:给每一项操作的函数,作用域对象(可选,影响this的值)
//传入函数的接受三个参数:数组项的值、该项在数组中的位置,和数组对象本身。
//他们都不会修改数组中包含的值
 
every() 给定函数对每一项返回true,则返回true
filter() 返回函数返回值为true的项组成的数组
forEach() 没有返回值
map() 返会函数每次调用的结果组成的数组
some() 给定函数对任意一项返回true则返回true
 
var numbers = [ 1, 2, 3, 4, 5, 6, 7 ] ;
var ereryResult = numbers.every( function(item, index, array ) {
    return ( item > 2 );
} ) ;
alert(everResult);//false
 
缩小方法
//两个参数:在每一项调用的参数,作为缩小基础的初始值(可选)
//传入的函数接受4个参数:前一个值,当前值,索引值,数组对象。
//每一次调用函数返回的值都作为第一个参数传给下一项,从数组第二项开始迭代
 
var values = [1,2,3,4,5];
var sum = values.reduce( function(prev,cur,index,array){
    return prev +cur;
});
alert(sum);//15
 
//reduceRight()方向相反
 
 
 
posted @ 2018-06-21 09:49  隙游尘  阅读(92)  评论(0编辑  收藏  举报

Hi