JavaScript 数组常用方法

数组
  1. 数组是一种特殊的对象,再javaScript中对数组使用typeof运算符返回"object",所有 JavaScript 对象都拥有 toString() 方法。

  2. 数组的length 属性(既然有属性,也可以从另一方面验证数组是对象)

    arr = [1,2,3,4]
    console.log(arr.length); //4
    arr[8] = 9
    console.log(arr.length);  d//9
    
数组的定义
  1. 定义数组的两种方法

    let arr = [4,8];
    let arr1 = new Array(4,8);
    
判断数组
  1. 判断空数组,如果数组的长度为0 ,怎证明数组是空的

    let arr = [] 
    if(arr.length == 0){
    	console.log("arr 是空数组")
    }
    
  2. 判断是否是数组

    let arr = [4, 8];
    
    // istanceof 方法
    console.log(typeof arr);  //object  typeof只能判断数组是对象,所一不可以用typeof 判断是不是数组
    console.log(arr instanceof Array); //true
    
    //使用 es6 的isArray 方法
    console.log(Array.isArray([])); //true
    console.log(Array.isArray(arr)); //true
    
    
    // 自定义判断数组的方法
    function isArray(array) {
         //假如对象原型包含单词 "Array" 则返回 true
        return array.constructor.toString().indexOf("Array") > -1;
    }
    console.log(isArray([])); //true
    console.log(isArray(arr)); //true
    
数组的方法
  1. toString 所有 JavaScript 对象都拥有 toString() 方法。toString() 把数组转换为数组值(逗号分隔)的字符串

    arr = ["你好", "小毅", "牛年大吉"];
    console.log(arr.toString()); //你好,小毅,牛年大吉
    console.log(arr);//["你好", "小毅", "牛年大吉"]
    
  2. join ,它的行为类似 toString(),但是您还可以规定分隔符:

    arr = ["你好", "小毅", "牛年大吉"];
    console.log(arr.join("x")) // 你好x小毅x牛年大吉
    
  3. pop 删除最后一个元素 返回被删除的值

  4. shift 删除首个元素,返回被删除的元素

  5. push 在数组尾部添加一个新的元素 ,返回新数组的长度

  6. unshift 在数组首部添加一个元素,返回新数组的长度

  7. delete arr[0],删除第一个元素,不会改变其他元素的索引,第一元素变为undefined

  8. splice 拼接数组 返回一个包含已删除项的数组:

    第一个参数(2)定义了应添加新元素的位置(拼接)。
    
    第二个参数(0)定义应删除多少元素。
    
    其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。
    
  9. concat 连接多个数组,返回连接后的新数组

    var arr1 = ["Cecilie", "Lone"];
    var arr2 = ["Emil", "Tobias", "Linus"];
    var arr3 = ["Robin", "Morgan"];
    var myChildren = arr1.concat(arr2, arr3);   // 将arr1、arr2 与 arr3 连接在一起
    
    var arr1 = ["Cecilie", "Lone"];
    var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]); 
    
  10. slice 切出数组,arr.slice(start,end) 第二个参数空则默认到最后一个元素,创建一个新的数组,不会从源数组中删除任何元素

数组的排序
  1. sort 方法对数组排序

    数组升序排序

    var points = [40, 100, 1, 5, 25, 10];
    points.sort(function(a, b){return a - b}); 
    

    数组降序排序

    var points = [40, 100, 1, 5, 25, 10];
    points.sort(function(a, b){return b - a}); 
    
  2. reverse 反转数组

    fruits.reverse();    
    
数组迭代
  1. forEach() 方法

     arr = [1,2,3,4,5,6,7]
    /**
    * 该函数接受 3 个参数:
    *     项目值
    *     项目索引     
    *     数组本身
    * /
    
    arr.forEach((value,index,arr1)=>{
        console.log(value,index,arr1);
    })
    
  2. Array.map()

    map() 方法通过对每个数组元素执行函数来创建新数组。

    map() 方法不会对没有值的数组元素执行函数。

    map() 方法不会更改原始数组。

    arr.map((value,index,arr1)=>{
        console.log(value,index,arr1);
    })
    
  3. filter() 方法创建一个包含通过测试的数组元素的新数组。

    返回一个元素都大与18 的新数组

    arr.filter((value,index,arr)=>{
       return value > 18 
    })
    
  4. Array.every() 所有元素都通过测试,所有都通过返回true,否则为false

  5. Array.some() 某些元素是否通过了测试,有至少一个则返回true,都不通过返回false

  6. Array.indexOf(value) 返回数组中第一次出现 value 对应的位置(index+1)

  7. Array.reduce()

    var numbers1 = [45, 4, 9, 16, 25];
    var sum = numbers1.reduce((total, value, index, array)=> {
      return total + value;
    });
    
  8. Array.find() 返回通过测试的第一数组元素值

    var goodAge = numbers1.find((value, index, array)=> {
      return value > 18;
    });
    
  9. Array.findIndex() 测试函数的第一个数组元素的索引

    var goodAgeIndex = numbers1.find((value, index, array)=> {
      return value > 18;
    });
    
apply call
  1. apply 方法接受数组形式的参数。 Aarry 中没有Math 方法

    let max1 = Math.max.apply(null,arr);
    
  2. call 方法分别接受参数

    let max = Math.max.call(arr,2,3,4,5,555,);
    
数组出重
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值