数组的操作方法

 
1、数组的操作方法
 
数组的尾部操作:
    push()   向数组的尾部添加一个或多个的数据
    pop()      将数组尾部的数据删除
 
数组头部操作:
    unshift()    向数组的头部添加一个或多个元素 
    shift()    删除数组头部元素
 
数组中间数据操作(也适用于头尾部):可以实现 添加、 删除、替换 操作
    splice( start length ) 表示从start位置处  删除  指定length的数据  start:就是下标  length :长度
 
    第一个值是start:添加或删除的起始位置
    第二个值是0:添加
            非0:删除,替换(先删除后添加)    数字为删除的个数
    第三个值(个数不固定):数据
 
 
 
上述五个方法都改变原数组
 
 
slice(start,end)  截取从start位置 到 end-1 位置处的数据     返回截取后的数据
 
join(字符) 将数组中的数据通过 某个 字符 连接起来   返回一个字符串
        扩展小技巧:快速的计算 数组中所有数据的和
                    eval(arr.join("+"));
reverse()  数组 的反转  返回的是反转后的数组(改变原数组)
 
 
 
 
 
 
 
 
 
 
2、数组中的排序方法sort()
 
用法:    数组名.sort()
当没有参数时,默认是按照  字符  进行  升序排序
如果想对数值进行排序,sort需要提供一个参数,该参数是一个匿名函数
用法:数组名.sort( function(a,b){
                                    return  a -b;升序(a>b   a-b>0)     return  b-a;   降序(a<b   a-b<0)
                })
 
 
 
 
3、数组的扩展方法
 
indexOf(参数
        判断某个数据在数组中是否存在,如果存在就返回数组的下标  如果不存在就返回-1
        数组.indexOf(num)
 
//indexOf( 参数 ) 判断某个数据在数组中是否存在 如果存在就返回这个数在数组中的下标 如果不存在就返回-1
    function fnIndexOf() {
        var arr = [1, 2, 3, 4, 5];
        alert(arr.indexOf(2));
    }
    //fnIndexOf();
    function noRepeat(arr) {
        var brr = [];
        for (var i = 0; i < arr.length; i++) {
            //判断arr[i]在brr中是否存在
            if (brr.indexOf(arr[i]) == -1) {//如果不存在
                brr.push(arr[i]);
            }
        }
        return brr;
    }
    //alert( noRepeat( [1,2,3,1,2,3] ) );
 
 
 
forEach()
        遍历数组  没有返回值
 
//forEach() 遍历数组 没有返回值
    function fnForEach() {
        var arr = [11, 2, 32, 43, 5];
        arr.forEach(function (item,index,arr) {
            // item : 表示数组中的数据
            // index : 表示下标
            // arr : 表示遍历的 数组
            console.log(item);
        })
    }
    fnForEach();
 
 
    //获取数组中的最小值
    function getMin(arr) {
        //shift() 删除数组头部元素 返回值删除的元素
        //假设数组中第一个数是最小的
        var min = arr.shift();//arr[0]
        arr.forEach(function (item) {
            min = item < min ? item : min;
        })
        alert(min);
    }
    //getMin( [23,1,4,5,67,78] );
 
 
 
filter() 
        过滤  返回满足某个条件的数组中的数据  返回值是一个数组
 
 
//filter() 过滤 返回满足某个条件的数组中的数据 返回值是一个数组
    function fnFilter(arr) {
        //brr用于接收filter的返回值
        var brr = arr.filter(function (item) {
            return item > 0;
        })
 
        return brr;
    }
 
    //alert( fnFilter( [12,-2,-3,-5,89,-9,78,6] ) );
 
 
 
 
 
map()
        映射 :  遍历数组---操作数组---返回数组
        返回值是一个数组
 
//map() 映射 : 遍历数组 ---操作数组---返回数组
    function fnMap(arr) {
        var brr = arr.map(function (item) {
            return item * 1.3;//操作数组并将结果存入到一个新的数组中
        })
 
 
        return brr;
    }
    //alert( fnMap( [10,20,30,40,50] ) );
 
reduce()
        归并    返回最后一次操作的结果        计算数组的和
        第一个参数:前一个操作返回的结果,默认第一个为数组中的第一个数据
        第二个参数:下一个数  除了数组中第一个数之外的所有数
 
 
 
 
//reduce() 归并 返回最后一次操作的结果
    function fnReduce() {
        var arr = [11, 2, 3, 4, 5];
        document.write("prev" + "-----" + "next<br>");
        var res = arr.reduce(function (prev, next) {
            //prev : 前一个操作返回的结果 默认第一个为数组中的第一个数据
            //next : 下一个数 除了数组中第一个数之外的所有数
            document.write(prev + "---" + next + "<br>");
            return prev + next;
        })
 
        alert(res);
    }
    // fnReduce();
posted @ 2018-10-25 19:07  金晶闪闪放光芒  阅读(731)  评论(1编辑  收藏  举报