lodash常用好用的方法,以及es6数组常用方法梳理

记录一些lodash中一些好用的方法:

<template>
  <div>lodash常用方法</div>
</template>
<script>
export default {
  name: "lodash",
  data() {
    return {};
  },
  mounted() {
  	 字符串方法:
      _.startWith      //判断字符串是否以xx开头
      _.endWidth       //判断字符串是否以xx结束
            
     对象方法:    
       _.assign      //合并对象,不能用于数组
       _.omit(obj,'a');      //返回移出部分属性的副本
       _.pick(obj,'a','c')     //提取部分属性的副本,比如只提交某些字段
     数组方法:
      _.map(数组对象,‘key’)  //将数组对象中的值依据key提取到一个数组中
      _.map(myArray,item=>) 
      _.forEach(myArray,item=>{})   
      _.times(myArray.length,(item,index)=>{
     	console.log(item,1111)
      })      //循环操作每一项
      _.pull(array,element1,element2)    //直接在array中移除元素
      _.without(array,element1,element2)   //得到新数组中移除元素
      _.remove(array,function)   //直接在array中移除在function返回为true的元素

	 同时支持对象和数组的
     _.isEqual   //比较是否相等  返回布尔值
     _.isEmpty   //空数组
     cloneDeep  //深度复制     
     clone  //灵活指定克隆深度

    //*****在指定范围内获取一个随机值
     _.random(0,20)    获取0-20的随机数
     _.random(0,20,true)    获取0-20的浮点型随机数

     1. _.difference(array,[values])   从数组中过滤元素    *:俩个参数都是数组类型
     a.剔除array中不需要的元素
     console.log(_.difference(array,[1,2,3]))     // 打印结果:[4,5,6,7,8,9,10]
     b.比较俩个数组是否相同
     console.log(_.difference(array,array))      //打印结果: []

     2. _.drop(array,number)从头开始删除number个数组元素     类似slice()
      console.log(_.drop(array,5))       //打印结果:  [6, 7, 8, 9, 10]
     _.dropRight()  从末尾开始删除number个数组元素

    // 复习:  slice(start,end) 截取从start(下标)到end-1位置处的数据,返回截取的数据   不改变原数组
    // splice(start,length) 从start(下标)处删除 指定length长度的数,返回删除的数据    改变原数组
    //  splice(start,length,num1,num2)第三个参数的个数不固定  替换

    // 3. _.first(array)  返回数组的第一个元素
    // console.log(_.first(array),_.first(myArray))
    // 9. _.last(array)   返回参数数组的末尾元素

    // 4. _.findIndex(array,[predicate=_.identity],[thisAry])   类似于indexOf()方法
    //             查询元素序号,如果查询到了符合要求的第一个元素则返回序号,否则返回-1
    // 5. _.findLastIndex   返回符合要求的最后一个元素的序号
    // console.log(_.findIndex(myArray, {name: "xiaowang",age: 19}));
    // console.log(_.findIndex(myArray, 'name'))

    // 6. _.fill()数组元素替换   *注:此方法改变原数组         类似splice()
    // console.log(_.fill(array,'*'))          //打印结果:) ["*", "*", "*", "*", "*", "*", "*", "*", "*", "*"]
    // console.log(_.fill(array,'*',1,5))      //打印结果: [1, "*  ", "*", "*", "*", 6, 7, 8, 9, 10]

    // 7. _.indexOf()
    // console.log(_.indexOf(array,2), _.indexOf(array,2,2,2,2), _.indexOf(array,2,true))
    //打印结果: 1   2   1
    // _.lastIndexOf()
    // console.log(array.lastIndexOf(2,2,2),"原生方法")
    // console.log(_.lastIndexOf(array,2), _.lastIndexOf(array,2,2,2), _.lastIndexOf(array,2,true))
    //                   //打印结果: 5   2    1

    // 8._.pull(array,[values])  移除值,  注:直接在原数组上进行操作
    // console.log(_.pull(array,2,3))   打印结果: [1, 4, 5, 6, 7, 8, 9, 10]

    // 10.flatten(array)  减少一级array嵌套深度
    // flattenDeep(array) 将array抹平为一维数组
    // flattenDepth(array,[depth=1])  根据depth减少嵌套层数
    //  let arr = [1,[2,3,[4,5,6]]]
    //  console.log(_.flattenDeep([1, [2, 3, [4]]], true))
    //  console.log(_.flatten(arr), _.flatten(arr,true))

    // 11 _.uniq 去除集合中的重复部分
    // 12 _.filter
  }
};
</script>

 附:es6 常用数组的方法:
            核心方法:
                splice(start,length)  表示删除从start(下标)位置处,删除length长度的数据,返回被删除的数据
                splice(start) 表示到末尾全部删除,返回被删除的数据
                splice(start,length,'替换的内容')

                slice(start,end)  表示截取从start(下标)到end-1位置处的数据,返回截取的数据,不改变原数组
                slice(start)  表示到末尾全部截取,返回截取的数据
                slice 没有第三个参数

                join(字符)  将数组中的数据通过某个字符连接起来,返回一个字符串   无参数默认逗号分隔
                reverse()   翻转数组中元素顺序
                
                flat(Infinity)  将多维数组转为一维数组

                includes() 判断arr是否包含一个指定的值,返回true false
            遍历方法:
                map filter find  reduce
            1.判断是否是数组的方法:
                Array.isArray()  判断括号内是否是数组   //不支持ie8以下
                兼容ie8以下的方法:
                    if(!Array.isArray){
                        Array.isArray = function(arg){
                            return Object.prototype.toString.call(arg) === '[object Array]'
                        }
                    }

                instanceOf 用来检测构造函数的prototype属性是否出现在某个实例对象的原型链上
                检测数组: arr instanceOf Array
                    缺点:1.构造函数的prototype和实例的原型链都有可能会改变,
                          2.在iframe的页面脚本中使用instanceOf,可能会得到错误结果、
                            iframe具有独立的全局环境,不同的全局环境拥有不同的全局对象,从而拥有不同的内置类型构造函数 

                constructor   每个实例都有构造函数,用于保存创建当前对象的函数
                arr.constructor === Array    //缺点有被修改的风险,导致判断不一定准确
            2.for infor of 区别
             for in  遍历key   更适合遍历对象,遍历数组得到的是数组的下标
             for of 遍历value   可以遍历数组,得到的是数组的元素  
                                不能遍历对象
            
            3.Set集合 和 Map集合
            数组去重: ...new Set([arr])
                      Map    set()   赋值
                             get() 根据键获取值
                             delete() 删除数据
                             has()   判断是否含有某个键
                             clear()  清空
                      例:new Map(['key1','value1'],['key2','value2'])

你可能感兴趣的:(lodash,javascript,es6)