美文网首页
@芥末的糖-----lodash常用的方法

@芥末的糖-----lodash常用的方法

作者: 芥末的糖 | 来源:发表于2019-04-08 15:29 被阅读0次
    u=1285717054,581275134&fm=173&app=25&f=JPEG.jpg

    好久没更新了,项目里遇到很多坑,总结一波,顺便给女友一用...两全其美

    在干货之后有项目中遇到的坑,一些实战案例在下面继续更新

    1.下面是对数组的操作

     //  接下来是对数组的操作 
        var myArr = [
            '生气',
            '开心',
            '灿烂',
            '赌气',
            '飞起',
        ]
        // 合并数组
        console.log(_.concat(myArr, ['我最帅']));//["生气", "开心", "灿烂", "赌气", "飞起", "我最帅"]
    
        //判断数组里是否有值
        console.log(_.includes(myArr, '飞起'))  //true
    
        //判断是否为空
        console.log(_.isEmpty([])) //true
    
        //数组取不包含
        console.log(_.without([1, 2, 3, 4, 5], 1, 2)) //[3, 4, 5]
        console.log(_.xor([1, 2, 3, 4, 5], [2, 3])) //[1, 4, 5]
    

    2.下面是对象的操作

     //  接下来是做对象的操作 
        var myObj = {
            'Scarlett': 1,
            'status': '生气'
        }
    
        //获取某一项
        console.log(_.get(myObj, ["Scarlett"], '')); //1
    
    
        //合并两个对象
        console.log(_.assign({ a: 1 }, { b: 2 })) //{a: 1, b: 2}
    
        //取出 去除 对象的某一行
        console.log(_.omit(myObj, 'Scarlett')) //{status: "生气"}
        console.log(_.pick(myObj, 'Scarlett')) //{Scarlett: 1}
    

    3.对数组对象的操作

    //  接下來是对数组对象的操作 
        var myArrObj = [
            { 'Scarlett': 1, 'status': '生气' },
            { 'Scarlett': 0, 'status': '排序' },
            { 'Scarlett': 2, 'status': '开心' },
            { 'Scarlett': 3, 'status': '开心' },
        ]
        // var myArrObjOther = [
        //     0: { 'Scarlett': 1, 'status': '生气' }
    
        // ]
        //获取某一项
        console.log(_.get(myArrObj, `0.Scarlett`, '')); //1
    
        //获取某一个条件下所有项
        console.log(_.filter(myArrObj, { 'status': '开心' })) // [{Scarlett: 2, status: "开心"} {Scarlett: 3, status: "开心"}]
        console.log(_.filter(myArrObj, function (o) { return o.status === '开心'; })) // [{Scarlett: 2, status: "开心"} {Scarlett: 3, status: "开心"}]
    
    
        //获取某一个条件某一项(返回一个对象)
        console.log(_.find(myArrObj, function (o) { return o.status == "开心"; })); //{Scarlett: 2, status: "开心"}
    
    
        //找到当先条件下的下标(找到就返回了)
        console.log(_.findIndex(myArrObj, function (o) { return o.status == '开心'; })); //2
    
        //拿到数组对象的某一列列
        console.log(_.map(myArrObj, 'Scarlett')) //[1, 0, 2, 3]
    
        // ----------------------------------------高阶用法----------------------------------
        //排序(单数组也可以)
        console.log(_.sortBy(myArrObj, 'Scarlett')); //[{Scarlett: 0, status: "排序"},{Scarlett: 1, status: "生气"},{Scarlett: 2, status: "开心"},{Scarlett: 3, status: "开心"},]
    
        //按照某一项去重
        console.log(_.uniqBy(myArrObj, 'status'));//[{Scarlett: 1, status: "生气"},{Scarlett: 0, status: "排序"},{Scarlett: 2, status: "开心"},]
    
    
        //按照每一个对象去重
        console.log(_.uniqWith(myArrObj, _.isEqual)) //会去掉重复的对象
    
        //取交集
        console.log(_.union([1, 2, 3], [1, 2])) //[1, 2]
        console.log(_.union([{ a: 1 }], [{ b: 2 }])) //[{"a":1},{"b":2}]
    

    4.下面是实战

       // 实战1
        var user1 = [
            { 'user': 'barney', age: 36, 'active': true },
            { 'user': 'fred', age: 40, 'active': false }
        ];
        //拿到数组对象的某一个key:value
        console.log(_.map(user1, function (val, inx) {
            return _.pick(val, 'age')
        })); //[{"age":36},{"age":40}]
    
    
      // 实战2 ---------------------------------------------------------
        var user2 = [
            { 'user': 'barney', age: 36, 'active': true },
            { 'user': 'fred', age: 40, 'active': false }
        ];
        //修改数组对象的某个对象里面的某个值
        var user2Find = _.find(user2, function (o) { return o.age == "36"; })
        _.set(user2Find, ["age"], 500)
        console.log(user2);//  [ {user: "barney", age: 500, active: true},{user: "fred", age: 40, active: false}]
    
    
    //实战3  ---------------------------------------------------------
          console.log(_.difference([1, 2, 3, 4], [2, 3, 4, 5]));  // [1]
          console.log(_.difference([1, 2, 3, 4, 6], [2, 3, 4, 5])); // [1.6] 
    
    
    // 实战4 ---------------------------------------------------------
          var users = [
            { 'user': 'barney',  'age': 36 },
            { 'user': 'fred',    'age': 40 },
            { 'user': 'pebbles', 'age': 1 }
          ];
           
          var youngest = _
            .chain(users)
            .sortBy('age')
            .map(function(o) {
              return o.user + ' is ' + o.age;
            })
            .head()
            .value();
            console.log(youngest);
    
    // 实战5  ---------------------------------------------------------
    var array = [1, 2, 3, 4];
    var evens = _.remove(array, function(n) {
      return n % 2 == 0;
    });
     
    console.log(array);
    // => [1, 3]
     
    console.log(evens);
    // => [2, 4]
    
    //实战6 ---------------------------------------------------------
    var users = [
      { 'user': 'barney',  'age': 36 },
      { 'user': 'fred',    'age': 40 },
      { 'user': 'pebbles', 'age': 1 }
    ];
     
    var youngest = _
      .chain(users)
      .sortBy('age')
      .map(function(o) {
        return o.user + ' is ' + o.age;
      })
      .head()
      .value();
    // => 'pebbles is 1
    

    持续更新中

    我还是喜欢你

    像风走了八千里,不问归期

    二月花开,三秋叶落

    它见过哭泣的鱼

    我还是喜欢你

    像鱼看罢半夜雨,泪藏水底

    没有痕迹,不必提起

    它听说梅已忘记

    我还是喜欢你

    像梅吻了一场雪,鲜血淋漓

    等风春来,花雪成溪

    它希望再遇见你

    终于

    鱼死在了泪一样咸的海

    风再找不到来的路

    梅被狠狠碾碎成了泥

    都是没有心的,何苦念念不忘

    我还是喜欢你

    时间是一条河,匆匆忙忙。有些人时而想念,时而挂牵,可是走不到终点,终点很远,你很远,我也很远。

    sorry。

    相关文章

      网友评论

          本文标题:@芥末的糖-----lodash常用的方法

          本文链接:https://www.haomeiwen.com/subject/elabdqtx.html