es6常见数组的用法

常见数组方法:

  1.  push()           向数组尾部添加元素,返回添加后的数组长度,原数组改变 
  2.  pop()             从数组的尾部删除一个元素,返回删除的元素,原数组改变 
  3.  unshift()         向数组头部添加元素,返回添加后的数组长度,原数组改变 
  4.  shift()             从数组的头部删除一个元素,返回删除的元素,原数组改变 
  5.  Slice()            提取数组,(1 起 2 止止不算)原数组不变 
  6. //两个参数
    slice(参数1,参数2);
    参数1:从何处开始选取(截取数组单元起始位置的索引下标)
    参数2:从何处结束选取(截取数组单元结束位置的索引下标)
    
    示例:
       var arr=['aa','bb','cc','dd','ee','ff'];
       var data=arr.slice(2,4);
       新数组data结果为: ["cc", "dd"]
       截取的内容包括起始索引下标数据[“cc”],不包括结束索引下标的数据[“ee”]。
    
    
    
    //一个参数
    slice(参数1);
    
         var arr=['aa','bb','cc','dd','ee','ff'];
         var data=arr.slice(2);
         新数组data结果为: ["cc", "dd", "ee", "ff"]
    
  7.  splice()          剪接数组,(1 起 2 长 3 添加)原数组改变  
  8. // 删除功能  第一个参数为第一项位置,第二个参数为要删除几个
            var arr1 = ['a', 'b', 'c', 'b']
            var removeArray = arr1.splice(1, 1)
            console.log(arr1);  //['a', 'c', 'b']
     
     
            //插入功能  第一个参数(插入位置),第二个参数(0),第三个参数(插入的项)
            var arr2 = ['a', 'b', 'c', 'b']
            var removeArray = arr2.splice(1, 0, "rabbit")
            console.log(arr2);  // ['a', 'rabbit', 'b', 'c', 'b']
     
     
            //替换功能  第一个参数(起始位置),第二个参数(替换的项数),第三个参数(插入任意数量的项)
            var arr3 = ['a', 'b', 'c', 'b']
            var removeArray = arr3.splice(1, 1, 'sss', '5', '562')
            console.log(arr3);  //['a', 'sss', '5', '562', 'c', 'b']
                
  9.  reverse()        反转数组,原数组改变 
  10. sort()              按位比较
  11. //不传参
    例1:
    let arr1 = ['e', 'b', 'd', 'a', 'f', 'c'];
    let result = arr1.sort(); // 将数组 arr1 进行排序
    console.log('arr1 =' + JSON.stringify(arr1));
    console.log('result =' + JSON.stringify(result));
    
    result:
        arr1 =["a","b","c","d","e","f"]
        result =["a","b","c","d","e","f"]
    sort 方法会改变原数组,而且方法的返回值也是同样的结果
    
    
    例2:
    let arr2 = [5, 2, 11, 3, 4, 1];
    let result = arr2.sort(); // 将数组 arr2 进行排序
    console.log('arr2 =' + JSON.stringify(arr2));
    console.log('result =' + JSON.stringify(result));
    
    result:
        arr2 = [1,11,2,3,4,5]
        result = [1,11,2,3,4,5]
    使用 sort() 排序后,数字11竟然在数字2的前面。这是为啥呢?因为上面讲到了,sort()方法是按照Unicode 编码进行排序的。
    
    
    //sort()方法:带参时,自定义排序规则
    let arr = [5, 2, 11, 3, 4, 1];
    
    // 自定义排序规则:升序排列
    // a - b < 0, a在b的前面
    // a - b = 0, a和b位置不变
    // a - b > 0, a在b的后面
    let result = arr.sort((a, b) => a - b);
    
    console.log('arr =' + JSON.stringify(arr));
    console.log('result =' + JSON.stringify(result));

       

  12. Join()                     参数最为连接字符,连接数组,转换为字符串,原数组不变 
  13. //join处理一个数组,不传任何参数
    let arr = new Array()
    arr[0] = 'feiniaomy.com'
    arr[1] = 'mochu'
    arr[2] = '飞鸟慕鱼'
    
    let str = arr.join();
    console.log("str => ", str)
    
    result:
        str =>  feiniaomy.com,mochu,飞鸟慕鱼
    
    
    //join()以指定的字符串分割数组的元素
    
    // 使用字符串"|"分割数组的元素
    let str1 = arr.join('|')
    console.log("str1 => ", str1)
    
    result:
        str1 =>  feiniaomy.com|mochu|飞鸟慕鱼
    

  14. concat()                 合并数组,原数组不变 arr1.concat(arr2,arr3)        
  15.  find 查找符合条件的项
  16.  findIndex 查找符合条件项目的下标
  17. toString()把数组转字符串(之间默认用逗号隔开)ES5 

ES5 数组的常用方法

  1. indexOf()                       查找数组中某元素第一次出现的索引,若无返回-1
  2. lastindexOf()                查找数组中某元素最后一次出现的索引,若无返回-1    
  3. forEach()                       遍历数组,不接受返回值        
  4. map()                          映射数组,接受返回值      
  5. // What you have
    var officers = [
      { id: 20, name: 'Captain Piett' },
      { id: 24, name: 'General Veers' },
      { id: 56, name: 'Admiral Ozzel' },
      { id: 88, name: 'Commander Jerjerrod' }
    ];
    // What you need
    [20, 24, 56, 88]
    
    
    //map
    const officersIds = officers.map(officer => officer.id);
          
  6. Filter()                         筛选满足条件数组 
  7. var pilots = [
      {
        id: 2,
        name: "Wedge Antilles",
        faction: "Rebels",
      },
      {
        id: 8,
        name: "Ciena Ree",
        faction: "Empire",
      },
      {
        id: 40,
        name: "Iden Versio",
        faction: "Empire",
      },
      {
        id: 66,
        name: "Thane Kyrell",
        faction: "Rebels",
      }
    ];
    
    //如果我们现在想要两个数组:一个是 rebel 飞行员,一个是 imperials 飞行员,用 .filter()
    const rebels = pilots.filter(pilot => pilot.faction === "Rebels");
    const empire = pilots.filter(pilot => pilot.faction === "Empire"); 

  8. Every()                       判断数组里每一个元素是否符合条件
  9. Some()                       判断数组里是否有一个符合条件的元素
  10. reduce()                      数组值累加(两个值累加完传递给第一个元素,直到最后)
  11. Object.entries()           对象转换为数组
    const object = { x:42,y:50 }
    const entries = Object.entries(object)
    console.log(entries)
    
    //(2) [Array(2), Array(2)]

        12. Object.fromEntries()         数组转换为对象

const object = [['x', 42], ['y', 50]]
const entries = Object.fromEntries(object)

console.log(entries)
//{x: 42, y: 50}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bangbang给你两锤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值