JavaScript数组

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,6
    console.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,Thomas document.write(arr.push("James") + "
    "); //4 document.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,Thomas document.write(arr.unshift("William") + "
    "); // 4 document.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);     // -1
    arr.indexOf(6);     // 2
    
  • lastIndexOf() : 返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1
    let arr = [1,3,6,8,9];
    arr.lastIndexOf(2);     // -1
    arr.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
    

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值