JavaScript数组

来源:互联网 发布:snh48黑历史 知乎 编辑:程序博客网 时间:2024/06/10 02:47

Array 对象用于在单个的变量中存储多个值.创建数组的方法如下:

let arr = new Array();let arr = new Array(size);let arr = new Array(element0, element1, ..., elementn);let arr = [];let arr = ['apple','banana']

通过索引访问数组元素:

let item = arr[item]

遍历一个数组:

arrName.forEach(function (item, index, array) {    console.log(item, index);});

Array常用对象方法:

  • concat() :连接两个或更多的数组,并返回结果。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组
    var arr = [1,3,5];var arr2 = arr.concat[2,[4,6]];console.log(arr2);       // 1,3,5,2,4,6console.log(arr);        // 1,3,5   原数组不变
  • join() :把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔。
    let arr = ['Wind', 'Rain', 'Fire'];arr.join();         // 默认为 ","     'Wind,Rain,Fire'arr.join("");       // 分隔符为空字符串 " "      "WindRainFire"arr.join("-");      // 分隔符 "-"     'Wind-Rain-Fire'
  • pop() :删除并返回数组的最后一个元素。pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
    let a = [1,3,5];a.pop();       // 5
  • push() :向数组的末尾添加一个或多个元素,并返回新的长度。
    let arr = new Array("George","John","Thomas");document.write(arr + "
    "); // George,John,Thomasdocument.write(arr.push("James") + "
    "); //4document.write(arr); // George,John,Thomas,James
  • shift() :删除并返回数组的第一个元素
    let arr = new Array("George","John","Thomas");document.write(arr.shift() );    // George
  • unshift() :向数组的开头添加一个或更多元素,并返回新的长度。
    let arr = new Array("George","John","Thomas");document.write(arr + "
    "); // George,John,Thomasdocument.write(arr.unshift("William") + "
    "); // 4document.write(arr); // William,George,John,Thomas
  • reverse() :颠倒数组中元素的顺序。
    let arr = ['one', 'two', 'three'];arr.reverse(); console.log(arr);    // ['three', 'two', 'one']
  • slice() :抽取当前数组中的一段元素组合成一个新数组,该方法不会修改数组,只会返回一个子数组。语法如下:
    arrayObject.slice(start,end)
  • splice():在任意的位置给数组添加或删除任意个元素,该方法会改变原数组。语法如下:
    arrayObject.splice(index,howmany,item1,.....,itemX)
    其中:index是必须参数,规定添加/删除项目位置;howmany也是必须参数,为删除的数目量;item…为可选参数,是向数组添加的新项目。
  • sort():对数组的元素进行排序。语法为:
    arrayObject.sort(sortby)
    其中sortby为一个可选的排序函数。、
    function sortNumber(a,b){return a - b}let arr = [1,5,8,2,6,4];arr.sort(sortNumber);      // 1,2,4,5,6,8
  • indexOf() :返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
    let arr = [1,3,6,8,9];arr.indexOf(2);     // -1arr.indexOf(6);     // 2
  • lastIndexOf() :返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1
    let arr = [1,3,6,8,9];arr.lastIndexOf(2);     // -1arr.lastIndexOf(6);     // 2
  • map() :创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。map 不修改调用它的原数组本身
    let arr = [1,4,9];    let num1 = arr.map(x => x*2);    let num2 = arr.map(function(x){        return Math.sqrt(x);    });    let num3 = arr.map(Math.sqrt);    console.log(num1);     // [2,8,18]    console.log(num2);     // [1,2,3]    console.log(num3);     // [1,2,3]
  • reduce() :对累加器和数组中的每个元素 (从左到右)应用一个函数,将其减少为单个值
    let sum = [0, 1, 2, 3].reduce(function(acc, val) {  return acc + val;}, 0);console.log(sum);     // 6
    对应的还有 reduceRight() 方法
  • filter() :“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
    function isBigEnough(value) {  return value >= 10;}var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);     //  [12, 130, 44]
  • every() :如果数组中的每个元素都满足测试函数,则返回 true,否则返回 false
    function isBigEnough(element, index, array) {  return (element >= 10);}var passed = [12, 5, 8, 130, 44].every(isBigEnough);    // false
  • some() :如果数组中至少有一个元素满足测试函数,则返回 true,否则返回 false。
    function isBigEnough(element, index, array) {  return (element >= 10);}var passed = [12, 5, 8, 1, 4].some(isBigEnough);       // true

在这里对数组的常用方法做个总结,方便以后查看。