zoukankan      html  css  js  c++  java
  • 数组的常用方法

    数组

    1.创建数组

    1.字面量 var arr=[]
    
    2.实例化 var arr = new Array(1,2,3)
    
    3.创建数组并给数组元素赋值
    var myCars = new Array();
    myCars[0] = "Saab";
    myCars[1] = "Volvo";
    
    

    2.数组的方法

    1 arr.push()从后面添加元素 返回值为添加完后的数组的长度
    let arr = [1,2,3,4,5]
    console.log(arr.push(5))   // 6
    console.log(arr) // [1,2,3,4,5,5]
    
    2 arr.pop() 从后面删除元素 只能是一个,返回值是删除的元素
    let arr = [1,2,3,4,5]
    console.log(arr.pop())     // 5
    console.log(arr)  //[1,2,3,4]
    
    3 arr.shift() 从前面删除元素 只能删除一个 返回值是删除的元素
    let arr = [1,2,3,4,5]
    console.log(arr.shift())  // 1
    console.log(arr)   // [2,3,4,5]
    
    4 arr.unshift() 从前面添加元素 返回值是添加完后的数组的长度
    let arr = [1,2,3,4,5]
    console.log(arr.unshift(2))    // 6
    console.log(arr)  //[2,1,2,3,4,5]
    
    5 arr.splice(i,n) 删除从i(索引值)开始之后的那个元素 返回值是删除的元素

    参数: i 索引值 n 个数

    let arr = [1,2,3,4,5]
    console.log(arr.splice(2,2))     //[3,4]
    console.log(arr)    // [1,2,5]
    
    **6 arr.concat() 连接两个数组 **返回值为连接后的新数组
    let arr = [1,2,3,4,5]
    console.log(arr.concat([1,2]))  // [1,2,3,4,5,1,2]
    console.log(arr)   // [1,2,3,4,5]
    
    7 str.split() 将字符串转化为数组
    let str = '123456'
    console.log(str.split('')) // ["1", "2", "3", "4", "5", "6"]
    
    8 arr.sort() 将数组进行排序 返回值是排好的数组,默认是按照最左边的数字进行排序,不是按照数字大小排序的。
    let arr = [2,10,6,1,4,22,3]
    console.log(arr.sort())   // [1, 10, 2, 22, 3, 4, 6]
    console.log(arr)
    
    9 arr.reverse() 将数组反转返回值是反转后的数组
    let arr = [1,2,3,4,5]
    console.log(arr.reverse())    // [5,4,3,2,1]
    console.log(arr)    // [5,4,3,2,1]
    
    10 arr.slice(start,end) 切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组
    let arr = [1,2,3,4,5]
    console.log(arr.slice(1,3))   // [2,3]
    console.log(arr)    //  [1,2,3,4,5]
    
    11 arr.indexOf() 查找某个元素的索引值,若有重复的,则返回第一个查到的索引值若不存在,则返回 -1
    let arr = [1,2,3,4,5,2]
    let arr1 = arr.indexOf(2)
    console.log(arr1)  // 1
    
    let arr2 = arr.indexOf(9)
    console.log(arr2)  // -1
    
    12 arr.lastIndexOf() 和 arr.indexOf() 的功能一样,不同的是从后往前查找
    let arr = [1,2,3,4,5,2]
    let arr1 = arr.lastIndexOf(2)
    console.log(arr1)  // 5
    let arr2 = arr.lastIndexOf(9)
    console.log(arr2)  // -1
    
    14 arr.find(callback) 找到第一个符合条件的数组成员**
    let arr = [1,2,3,4,5,2,4]
    let arr1 = arr.find((value, index, array) =>value > 2)
    console.log(arr1)   // 3
    
    15 arr.findIndex(callback) 找到第一个符合条件的数组成员的索引值 --es6
    let arr = [1,2,3,4,5]
    let arr1 = arr.findIndex((value, index, array) => value > 3)
    console.log(arr1)  // 3
    

    3.1遍历数组(5种)

    1.for… in
      var arr = ["first","second",'third',"fourth",3,5,8];
      for(var i in arr){
           console.log(arr[i] +'/' + i);
       }
     //输出结果为:first second third fourth 3 5 8
    
    2 arr.forEach(callback) 无return

    即使有return,也不会返回任何值,并且会影响原来的数组

    callback的参数: value --当前索引的值 index --索引 array --原数组

    var arr = [1,2,3,4]; 
    var res = arr.forEach((item,index,arr)=>{     
     arr[index] = item * 2; 
     return arr 
    })
    console.log(arr); // [2,4,6,8]
    console.log(res); // undefined 
    
    3 arr.map(callback) ,有return 返回一个新数组

    callback的参数: value --当前索引的值 index --索引 array --原数组

    var arr1 = [1,2,3,4]; 
    var res1 = arr1.map((item,index,arr)=>{ 
     item = item * 3; 
     return item; 
    })
    console.log(arr1); // [1,2,3,4]
    console.log(res1); // [3,6,9,12]
    
    ps: arr.forEach() 和 arr.map() 的区别
    1. arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据
    2. arr.forEach() 没有return arr.map() 有return
    4 arr.filter(callback) 过滤数组 返回一个满足要求的数组

    callback的参数: value --当前索引的值 index --索引

    let arr = [1,2,3,4,5]
      let arr1 = arr.filter( (value, index) => value<3)
      console.log(arr1)    // [1, 2]
    
    5 arr.some() 依据判断条件,数组的元素是否有一个满足,若有一个满足则返回ture

    callback的参数: value --当前索引的值 index --索引

    let arr = [1,2,3,4,5]
    let arr1 = arr.some( (value, index) =>value<3)
    
    console.log(arr1) // true
    
    let arr2 = arr.some( (value, index) =>value>6)
    
    console.log(arr2) // false 
    

    4.将数组转化成字符串

    1. toString(): 将数组拼接成字符串,有无参数都是使用“,”
    let arr1 = ['11', '22', '33'];
    let aaa = arr1.toString();
    console.log(aaa); // 11,22,33
    
    2.join(): 将数组拼接成字符串, ()里参数可有可无,默认为“,”
    arr1 = ['a','b','c'];
    arr1.join() = a,b,c ;
    arr1.join(' ') = a b c;
    arr1.join(' + ') = a + b + c ;
    

    5. Array.from() 将伪数组变成数组 ---es6

    就是只要有length的就可以转成数组。

    let str = '12345'
    console.log(Array.from(str))    // ["1", "2", "3", "4", "5"]
    let obj = {0:'a',1:'b',length:2}
    console.log(Array.from(obj))   // ["a", "b"]
    

  • 相关阅读:
    英特尔®oneAPI简介及动手实验研讨会召集令
    发展壮大:帮助独立游戏开发商解决分销难题
    我们可以从英特尔® SPMD 程序编译器中学到什么?
    2019 Unreal Open Day —— 英特尔携手 UE 助力游戏开发生态建设
    Abp集成Quartz.net记录
    静态和实例初始化映射
    Queryable扩展点
    投影
    空类型映射
    列表和数组
  • 原文地址:https://www.cnblogs.com/33shan/p/14264474.html
Copyright © 2011-2022 走看看