JS数组操作

添加和删除元素的方法
1.push & pop
        var arr1 = [1,2,3,4,5,6];
        // push:从尾部添加元素,返回元素的个数 / pop:从尾部删除元素,返回被删除的元素
        var result2 = arr1.push('aa');
        // 结果:arr1 = 1,2,3,4,5,6,aa result2 = 7(数组的个数)
        var result = arr1.pop();
        // 结果:arr1 = 1,2,3,4,5,6  result = aa(被抛弃的数组)
2.shift& unshift
        var arr1 = [1,2,3,4,5,6];

        // shift:从头部删除元素,返回被删除的元素 / unshift:从头部添加元素,返回添加元素后的个数

        result = arr1.shift();
        // 结果:arr1 = 2,3,4,5,6  result = 1(被抛弃的数组)

        result = arr1.unshift('aa');
        // 结果:arr1 = aa,2,3,4,5,6  result = 6(添加元素后数组的个数)
3. splice / slice
        /*
        aplice: 抛弃一些元素,在抛弃元素的位置插入一些元素,如果传入两个参数就只有删除没有追加,如果只有一个参数就是从该位置删除到最后 操作数组本身
                第一个参数:起始位置
                第二个参数:要删除元素的个数
                第三个参数及以后的参数:追加的新元素,从删除的位置开始追加
         */
        arr1 = [1,2,3,4,5];
        result = arr1.splice(1,2,3,4,5);
        // 结果:arr1 = 1,3,4,5,4,5  result = 2,3(被抛弃的数组)

        /*
        slice:截取范围  (左闭右开区间) 不操作数组本身
         */
        arr1 = [1,2,3,4,5];
        result = arr1.slice(2,5);
        // 结果:arr1 = 1,2,3,4,5  result = 3,4,5(截取到的数组)
concat & join & sort & reverse
        var arr1 = [1,2,3];
        var arr2 = [true, 4,5];

        result = arr1.concat(arr2);
        // 结果:result=1,2,3,true,4,5   arr1 = 1,2,3    arr2 = true,4,5
        // concat不操作数组本身,返回两个数组连接后的数组

        result = arr1.join('a');
        // 结果:result=1a2a3   arr1 = 1,2,3
        //不操作数组本身,在每个元素之间添加内容

        arr1 = [3,6,1,14,28,9];
        result = arr1.sort();
        // sort 正序排序, 按字母顺序排序
        // 结果:result=1,14,28,3,6,9   arr1 = 1,14,28,3,6,9

        arr1 = [3,6,1,14,28,9];
        result = arr1.reverse();
        // reverse: 将数组反转
        // 结果:result=9,28,14,1,6,3   arr1 = 9,28,14,1,6,3
ECMAScript5中Array特性
位置方法: indexOf & lastIndexOf
        var arr = [1,2,3,4,5,4,3,2,1];
        var index = arr.indexOf(4);
        // 结果: index = 3     返回第一次出现的位置
        index = arr.indexOf(4,4);
        // 结果: index = 5     返回从第一个参数位置开始第一次出现的位置

        index = arr.lastIndexOf(4);
        // 结果: index = 5     从后向前,返回第一次出现的位置
迭代方法: every & filter & forEach & some & map
        // every: 对数组的每一元素进行函数的运行,如果都返回true最后结果为true,如果有一个返回false则结果为false
        var result = arr.every(function(item, index, array){ // item:元素项,index:索引, array:数组本身
            return item > 2;
        });
        // 结果: false

        // some:和every相反,如果有一项返回true结果为true

        // filter :对数组的每一个元素进行函数运行,把返回函数运行的结果过滤出来
        result = arr.filter(function (item, index, array) {
           return item > 2;
        });
        // 结果: 3,4,5,4,3

        //fotEach: 循环数组的每一项,并执行一个方法
        arr.forEach(function (item, index, array) {
           item * 2;
        });

        // map :对数组的每一个元素进行函数运行,函数执行完毕后 把新的结果返回
        result = arr.map(function (item, index, array) {
            return item * 2;
        });
        // 结果: result = 2,4,6,8,10,8,6,4,2
缩小方法: reduce & reduceRight
        // reduce: 处理前一个值和当前值的关系
        var arr = [1,2,3,4,5,4,3,2,1];
        result = arr.reduce(function (prev,cur,index,array) {
        // 参数含义(前一个值, 当前值, 索引位置, 数组)
            return prev + cur; // 将前一个值和当前值相加
        });
        // 结果: result = 25

        // reduceRight : 从右侧开始遍历
        result = arr.reduceRight(function (prev,cur,index,array) {
            // 参数含义(前一个值, 当前值, 索引位置, 数组)
            return prev + cur;
        });
        // 结果: result = 25

你可能感兴趣的:(JS数组操作)