zoukankan      html  css  js  c++  java
  • JavaScript数据类型之数组

    1.1 创建数组

    1.1.1 构造函数法、数组实例化

    /* use Object Method:new */
    var array = new Array();
    
    /* 数组实例化 */
    var array = [];
    var array = [1,6,3];
    var array = [
        163,
        "netease",
        {color:"red"},
        [],
        true
    ];
    ---
    var students = [
        {id:1,score:80},
        {id:2,score:50},
        {id:3,score:70}
    ];
    ---
    

    1.1.2 Array.of() 将一组值转换为数组

    Array.of(1,2,3,4,5);//[1,2,3,4,5]
    

    1.1.3 Array.from() 将类似数组的对象或者可遍历的对象转换成真正的数组

    let ele = document.getElementsByTagName('a');
    ele instanceof Array;//false
    Array.from(ele) instanceof Array;//true
    
    let str = 'hello';
    Array.from(str);//["h", "e", "l", "l", "o"]
    

    1.1.4 数组推导法创建新函数

    var arr1 = [1,2,3,4];
    var arr2 = [for(i of arr1) i * 2];
    console.log(arr2);//[2,4,6,8]
    var arr3 = [for(i of arr1) if(i>3) i];
    console.log(arr3); //[4]
    

    1.2 数组长度:arr.length

    var students = [
        {id:1,score:80},
        {id:2,score:50},
        {id:3,score:90}
    ];
    students.length;//3
    
    students = [];
    students.length;//0
    

    1.3 获取和修改数组元素

    var students = [
        {id:1,score:70},
        {id:2,score:100},
        {id:3,score:30}
    ];
    
    /* 获取数组元素 */
    students[0];//{id:1,score:70}
    students[3].score;//30
    
    /* 修改数组元素 */
    students[3].score = 60;
    

    1.4 搜索匹配数组元素:indexOf

    /* arr.indexOf(searchElement[,fromIndex=0]) */
    var telephones = [110,120,114,1212];
    telephones.indexOf(120);//1
    telephones.indexOf(1212);//3
    telephones.indexOf(119);//-1
    

    1.5 遍历数组元素:forEach

    //数组中是对象
    /* arr.forEach(callback[,thisArg]) */
    var editScore = function(item,index,array){
        item.score +=5;
    };
    students.forEach(editScore);
    
    //数组中是数字
    /* array.forEach(function()); */
    var scores = [60,70,80,90];
    var newScore = [];
    var addScore = function(item,index,array){
        newScore.push(item+5);
    };
    scores.forEach(addScore);
    newScore;
    //[65,75,85,95]
    

    1.6 数组倒序:reverse()

    var telephones = [110,120,114,1212];
    telephones.reverse();
    telephones[0];//1212
    

    1.7 数组排序:sort()

    /* arr.sort([compareFunction]) */
    var byScore = function(a,b){
        return b.score-a.score;
    };
    student.sort(byScore);
    //outcome to be finded out!!
    //经过实验,发现是按照从大到小的顺序排序的
    
    var studentNames = ["wq","xl","gp"];
    studentNames.sort();
    studentNames;//["gp","xl","wq"]
    

    1.8 添加元素:push

    /* arr.push(element1,...,elementN) */
    ---
    var students = [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95}
    ];
    ---
    students.push({id:4,score:99},{id:5,score:100});
    ---
    students;
    /*
    [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95},
        {id:4,score:99},
        {id:5,score:100}
    ]
    */
    

    1.9 添加元素:unshift

    /* arr.unshift(element1,...,elementN) */
    ---
    var students = [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95}
    ];
    ---
    students.unshift({id:4,score:99});
    ---
    students;
    /*
    [
        {id:4,score:99},
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95}
    ]
    */
    

    1.10 删除元素:shift

    /* arr.shift() */
    ---
    var students = [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95}
    ];
    ---
    students.shift();
    ---
    students;
    /*
    [
        {id:2,score:90},
        {id:3,score:95}
    ]
    */
    

    1.11 删除元素:pop

    /* arr.pop() */
    ---
    var students = [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95}
    ];
    ---
    students.pop();//{id:3,score:95}
    ---
    students;
    /*
    [
        {id:1,score:80},
        {id:2,score:90}
    ]
    */
    

    1.12 删除、替换、添加操作:splice

    /* arr.splice(index,howMany[,ele1[,...[,eleN]]]) */
    ---
    var students = [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95}
    ];
    ---
    students.splice(1,1,{id:4,score:99});
    students;
    /*
    [
        {id:1,score:80},
        {id:4,score:99},
        {id:3,score:95}
    ]
    */
    
    students.splice(1,1);
    students;
    /*
    [
        {id:1,score:80},
        {id:3,score:95}
    ]
    */
    
    students.splice(1,0,{id:4,score:99});
    students;
    /*
    [
        {id:1,score:80},
        {id:4,score:99},
        {id:2,score:90},
        {id:3,score:95}
    ]
    */
    

    1.13 数组截取一部分:slice

    /* arr.slice(begin[,end]) */
    ---
    var students = [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95}
    ];
    ---
    var newStudents = students.slice(0,2);
    newStudents;
    /*
    [
        {id:1,score:80},
        {id:2,score:90}
    ]
    */
    
    var newStudents = students.slice(0);
    newStudents;
    /*
    [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95}
    ]
    */
    

    1.14 数组连接:concat

    /* arr.concat(value1,...,valueN) */
    ---
    var students = [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95}
    ];
    var students1 = [
        {id:4,score:99},
        {id:5,score:100}
    ];
    ---
    var newStudents = students.concat(students1);
    newStudents;
    /*
    [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,score:95},
        {id:4,score:99},
        {id:5,score:100}
    ]
    */
    

    1.15 字符串分割得到数组:split

    /* str.split(seperater); */
    "wuq@163.com;gp@163.com;xl@163.com".split(",");
    //["wuq#163.com","gp@163.com","xl@163.com"]
    

    1.16 数组连接成字符串:join

    /* array.join(connecter); */
    var emails = ["wuq@163.com","gp@163.com","xl@163.com"];
    emails.join(";");
    //"wuq@163.com;gp@163.com;xl@163.com"
    

    1.17 遍历数组操作:map

    /* array.map(function()); */
    var scores = [60,70,80,90];
    var addScore = function(item,index,array){
        return item+5;
    };
    var arr2 = scores.map(addScore);
    //经过map遍历操作过的item需要存在一个新的arr2中才能正常访问
    

    1.18 渐次操作:reduce

    /* arr.reduce(callback,[initialValue]); */
    var students = [
        {id:1,score:80},
        {id:2,score:90},
        {id:3,socre:95}
    ];
    var sum = function(previousResult,item,index,array){
        return previousResult + item.score;
    };
    students.reduce(sum,0);//265
    

    1.19 返回数组中符合条件的第一个元素值:find()

    let arr = [1,2,3,4,5,6];
    arr.find(function(value){
        return value > 2;  //3
    });
    arr.find(function(value){
        return value > 7;  //undefined
    })
    

    1.20 返回数组中符合条件的第一个元素位置:findIndex()

    let arr = [7,8,9,10];
    arr.findIndex(function(value){
        return value > 8; //2
    })
    

    1.21 用指定的值填充到数组:fill()

    let arr = [1,3,2];
    arr.fill(4);//[4,4,4]
    arr.fill(4,1,3)//[1,4,4] 从位置1的元素开始填充数字4,截止到位置3之前
    

    1.22 遍历数组,返回供for-of使用的遍历器

    //entries() 对数组的键值对进行遍历,返回一个遍历器,可以用for..of对其进行遍历。
    for(let[i,v]of['a','b'].entries())
    { console.log(i,v); }
    //0 'a'
    //1 'b'
    
    //keys() 对数组的索引键进行遍历,返回一个遍历器。
    for(let index of ['a','b'].keys())
    {console.log(index);}
    //0
    //1
    
    //values() 对数组的元素进行遍历,返回一个遍历器。
    for(let value of ['a','b'].values())
    { console.log(value); }
    //a
    //b
    
  • 相关阅读:
    Arctic Network POJ
    Journey CodeForces
    Free Goodies UVA
    MU Puzzle HDU
    Balance POJ
    1sting 大数 递推
    最大报销额 暴力。。
    洛谷P2826 LJJ的数学课
    2018年12月29日
    2018年12月28日
  • 原文地址:https://www.cnblogs.com/luwanlin/p/14320458.html
Copyright © 2011-2022 走看看