• 数组提升效率的几种操作


    let arr = [2, 4, 6, 8, 6, 2]
    
    1. 数组置空
      如果使用arr = [ ] :之前数组的内容依旧保存在内存中,数据较大时,会导致内存泄漏
     arr.length = 0
     console.log(arr) //[]
    

    2.头部插入数据
    concat:合并数组,不会更改现有数组,而是返回一个新数组。

    let newArr = [9].concat(arr)
    console.log(newArr)    //[9, 2, 4, 6, 8, 6, 2]
    

    3.在尾部插入数据

    arr[arr.length] = 4
    console.log(arr)  //[2, 4, 6, 8, 6, 2, 4]
    

    4.数组去重

    console.log(new Set(arr));     //{ 2, 4, 6, 8 }
    //对象转数组
    console.log(Array.from(new Set(arr)));  //[ 2, 4, 6, 8 ]
    

    5.复制数组 简单类型:深拷贝

    obj = {
    age: 18,
    name: '小米',
    address: {
     city: '广东'
       }
     }
    let test = [...arr]
    console.log(test);
     let nweObj = { ...obj }
     console.log(nweObj);
    //将数组转换成对象
    let obj = { ...arr }
    console.log(obj);  //{0: 2, 1: 4, 2: 6, 3: 8, 4: 6, 5: 2}
    

    6.数组交集

    let arr2 = ['张三', '李四', '王五', '赵六', '张三', '李四']
    let arr3 = ['小米', '小明', '小红', '小绿', '张三', '李四']
    jiao = [...new Set(arr2)].filter(item => arr3.includes(item))  
    console.log(jiao);  //[ '张三', '李四' ]
    

    7.获取数组的随机值

    console.log(arr[Math.floor(Math.random() * arr.length)]);
    

    8.获取最后出现的下标

    console.log(arr.lastIndexOf(6));  //4
    

    9.实现字符串倒序

    let str = 'abcdefg'
    console.log(str.split('').reverse().join(''));
    

    10.替换任意的位置 splice会改变原始数组

    let arr2 = ['张三', '李四', '王五', '赵六', '张三', '李四']
    arr2.splice(1, 3, '替换值1', '替换值2', '替换值3',)
    console.log(arr2);     //[ '张三', '替换值1', '替换值2', '替换值3', '张三', '李四' ]
    arr2.splice(0, 1)   //不传入第三位及以后的值时代表删除数据
    console.log(arr2);
    

    11.遍历数组

    let list = [
      { name: '小米', age: 11 },
      { name: '小明', age: 12 },
      { name: '小红', age: 13 }
    ]
    Array.from(list, (item) => item.str = `名字:${item.name}, 年龄:${item.age}`)
    console.log(list); //[
                //   { name: '小米', age: 11, str: '名字:小米, 年龄:11' },
                //   { name: '小明', age: 12, str: '名字:小明, 年龄:12' },
                 //   { name: '小红', age: 13, str: '名字:小红, 年龄:13' }
               // ]
    

    12.去掉数据中的虚假值 ' '不是虚假值

    let arr4 = ['小米', '', false, ' ', undefined, 0, NaN, true]
    console.log(arr4.filter(Boolean));  //[ '小米', ' ', true ]
    

    13.数组求和

    let arr2 = ['张三', '李四', '王五', '赵六', '张三', '李四']
    console.log(arr2.reduce((a, b) => a + b));  //'张三李四王五赵六张三李四'
    console.log(arr.reduce((a, b) => a + b));   //28
    
     
     
    4人点赞
     
    随笔
     
     


    作者:落墨诗卷
    链接:https://www.jianshu.com/p/2972c53a3ee8
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    poj2661
    poj2624
    无法使用 mask和unmask,报错“对象不支持此属性或方法”
    document.getElementsByName("IPInput3").disabled=(id!=1); 操作无效的原因是应该为
    jquery获取input的值
    POST过来的数据,php中提示Undefined index
    jQuery插件之zTree
    jQuery插件之Smart spin
    jQuery插件开发全解析
    使用IE调试检查JavaScript的错误
  • 原文地址:https://www.cnblogs.com/mmzuo-798/p/15347070.html
Copyright © 2020-2023  润新知