当你项目开发遇到瓶颈,摸不着头绪的时候 请用数组 (づ ̄ 3 ̄)づ ----------- 海牙

6.4 创建数组的方法与属性

    var arrA = new Array(); //实例化数组对象
    var arrB = new Array(10); //实例化数组对象 并且声明长度;
    var arrC = new Array(1,2,3,4,5,6); //[1,2,3,4,5,6] 实例化对象穿参作为
    var arrD = []; //语法糖 字面量创建数组
    var arrE = [1,2,3,4,5];
    var len = arrE.length; //5 数组内可穷举元素总数 简称:数组长度

6.5 数组方法

6.5.1 读写方法


    var arr = ['张三','李四','王五','赵六'];
    //根据数组下标 读取对应位元素 值
    console.log(arr[0]); //'张三'
    console.log(arr[1]); //'李四'

    

案例 数组映射优化代码性能


    var title = document.querySelector('h1'); //h1节点对象
    var txt = title.innerText; //h1节点文本内容
    var dayText = ''; //星期几 对应的文本
    var date = new Date();  //日期对象
    var day = date.getDay(); //获得 星期几 0 - 6

    switch (day) {
        case 0:
            dayText = '日';
            break;
        case 1:
            dayText = '一';
            break;
        case 2:
            dayText = '二';
            break;
        case 3:
            dayText = '三';
            break;
        case 4:
            dayText = '四';
            break;
        case 5:
            dayText = '五';
            break;
        case 6:
            dayText = '六';
            break;
        default:
            break;
    }
     title.innerText = txt.substr(0,5)+ dayText;

    var title = document.querySelector('h1'); //h1节点对象
    var txt = title.innerText; //h1节点文本内容
    var dayText = ''; //星期几 对应的文本
    var date = new Date();  //日期对象
    var day = date.getDay(); //获得 星期几 0 - 6

    //用空间换取时间
    var dayArr = ['天','一','二','三','四','五','六'];
    //用day做下标 指引元素
    dayText = dayArr[day];

    title.innerText = txt.substr(0,5)+ dayText;
    

6.5.2 数组方法

push()
push()方法可向数组的末尾添加一个或多个元素,并返回新的长度。

例: push() 6.5.2a

    var arr1 = [1,2,3];
    var arr2 = ['a','b','c'];
    var length = arr1.push(4); // 长度 4

    //把arr2 中的每一项 循环添加到arr1中
    for(var i = 0,item; item = arr2[i++];){
        arr1.push(item);
    }
    

例: push () 6.5.2b


    //6.5.2a 循环push的高级写法 实现concat
    var arr1 = [1,2,3,4];
    var arr2 = ['a','b','c'];
    function concat(a,b){
        var arr = a;
        arr.push.apply(arr,b);
        return arr;
    }
    var arr = concat(arr1,arr2);

unshift
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

    //6.5.2c
    var arr1 = [1,2,3,4,5];
    var arr2 = ['a','b','c','d'];
    arr1.unshift('kyogre'); 
    //6.5.2d 把 arr2每一项 添加到arr1 前
    var arr1 = [1,2,3,4,5];
    var arr2 = ['a','b','c','d'];
    function unConcat(a,b){
        var arr = a;
        arr.unshift.apply(arr,b);
        return arr;
    }
    unConcat(arr1,arr2);
    

pop
pop() 方法用于删除并返回数组的最后一个元素。

    //6.5.2e
    var arr1 = [1,2,3,4,5];
    var arr2 = ['a','b','c','d'];
    arr1.pop(); //5
    arr2.pop(); //'d'

shift
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

    //6.5.2f
    var arr1 = [1,2,3,4,5];
    var arr2 = ['a','b','c','d'];
    arr1.shift(); //1
    arr2.shift(); //'a'

reverse
reverse() 方法用于颠倒数组中元素的顺序。

    //6.5.2g
    var arr1 = [1,2,3,4,5];
    arr1.reverse();

concat
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

    //6.5.2h
    var arr1 = [1,2,3,4,5];
    var arr2 = ['a','b','c'];

    arr1.concat(arr2);

slice
slice() 方法可从已有的数组中返回选定的元素。
该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

    //6.5.2h
    var arr1 = ['张三','李四','王五','赵六']
    var x = arr1.slice(0,1);
    var y = arr1.slice(-2,-1);

sort
sort() 方法用于对数组的元素进行排序。

    //6.5.2g
    var arr1 = [3,5,1,2,6,8,4,2,5,7,9];
    arr1.sort();

数组(上)综合案例

    //数组去重
    var arr = [1, 2, 3, 2, 4, 5, 1, 2, 3, 2, 5, 6, 1, 2, 6, 7, 3];
    function deleteRepetition(arr) {
        var newArr=[arr[0]];
        for(var i=1;i<arr.length;i++){
            if(arr.indexOf(arr[i])==i){
               newArr.push(arr[i])
            }
        }
        return newArr;
    }
    console.log(deleteRepetition(arr));
     //reduce操作 累积求值
    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4];
    function reduce(arr, combine, start) { //数组 操作 起始值
        var len = arr.length;
        var current = start;
        for (var i = 0; i < len; i++) {
            current = combine(current, arr[i]);
        }
        return current;
    }
    var count = {
        add: function (a, b) {
            return a + b;
        },
        sub: function (a, b) {
            return a - b;
        },
        ride: function (a, b) {
            return a * b;
        },
        divde: function (a, b) {
            return a / b;
        }
    }
    console.log(reduce(arr, count['ride'], 1));

实战环境模拟

    var showArr = ['张三']; //展示区图片数组  [0,3]
    var selectArr = ['王五','赵六','奉贤','虎贲','骠骑']; //用户选择图片数组 [0,9]

    showArr = showArr.concat(selectArr.slice(0,3- showArr.length ));
12-22 00:29
查看更多