zoukankan      html  css  js  c++  java
  • lodash的运用

    Object 对象

    1._.merge(object, [sources])

    此方法类似于_.assign,除了它递归地将源对象的自有和继承的可枚举字符串键控属性合并到目标对象中。 如果存在目标值,将跳过解析为undefined的源属性。 数组和纯对象属性以递归方式合并。 其他对象和值类型将通过赋值覆盖。 源对象从左到右应用。 后续源覆盖先前源的属性分配。

    var object = {

      'a': [{ 'b': 2 }, { 'd': 4 }]
    };
     
    var other = {
      'a': [{ 'c': 3 }, { 'e': 5 }]
    };
     
    _.merge(object, other);
    // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
    会保留原先的数据结构,如果通数据结构上有重复就会覆盖. 
    var aa = {
    name: 'ee',
    age: 44,
    arr: [{
    name: '333',
    age: 444,
    yy: 99
    }]
    };

    _.merge(aa, {
    name: 'rr',
    age: 33,
    arr: [{
    name: '44',
    age: 555,
    uu: 999
    }]

    });
    /*结果 arr数组只有一个对象,所以结果是一个对象.并且同名的属性会被覆盖,不同名的会被添加*/
    { name: 'rr',
    age: 33,
    arr: [ { name: '44', age: 555, yy: 99, uu: 999 } ] }

    /********************/
    var bb = {
    arr: [{yy: 99},{kkk:9099}]
    };
    var cc = {
    arr: [{uu: 999}]
    };
    _.merge(bb, cc);

    // 结果{ arr: [ { yy: 99, uu: 999 }, { kkk: 9099 } ] }
    //原先的数据结构:arr是数组,包含两个对象,所以合并结果也是两个对象.

    /***************************/
    var bb = {
    arr: [{yy: 99}]
    };
    var cc = {
    arr: [{uu: 999},{kkk:9099}]
    };
    _.merge(bb, cc);

    //结果:{ arr: [ { yy: 99, uu: 999 }, { kkk: 9099 } ] }
    与上一例相同
    2._.assignIn(object, [sources])
    这个方法类似于_.assign,除了它迭代自己和继承源属性。
    function Foo() {
      this.a = 1;
    }
     
    function Bar() {
      this.c = 3;
    }
     
    Foo.prototype.b = 2;
    Bar.prototype.d = 4;
     
    _.assignIn({ 'a': 0 }, new Foo, new Bar);
    // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
     
    3._.assign(object, [sources])
    将源对象的自己的可枚举字符串键控属性分配给目标对象。 源对象从左到右应用。 后续源覆盖先前源的属性分配。
    function Foo() {
      this.a = 1;
    }
     
    function Bar() {
      this.c = 3;
    }
     
    Foo.prototype.b = 2;
    Bar.prototype.d = 4;
     
    _.assign({ 'a': 0 }, new Foo, new Bar);
    // => { 'a': 1, 'c': 3 }
     
     Array 数组
    1._.compact(array) 紧凑  
    会去掉falsenull0""undefined, and NaN are falsey(Boolean判断为false的值)
    Creates an array with all falsey values removed. The values falsenull0""undefined, and NaN are falsey.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    最全面的Java面试大纲及答案解析(建议收藏)
    开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~
    肝一波 ~ 手写一个简易版的Mybatis,带你深入领略它的魅力!
    2020年6月最新程序员工资统计,似乎又跌了,扎心!
    Redis企业级数据备份与恢复方案
    如何短时间内快速通过Java面试
    看完这篇还不懂Redis的RDB持久化,你们来打我!
    什么,容器太多操作不过来?我选择Docker Compose梭哈
    面试官:你说你精通 Docker,那你来详细说说 Dockerfile 吧
    30分钟快速上手Docker,看这篇就对了!
  • 原文地址:https://www.cnblogs.com/jay--zhang/p/5955568.html
Copyright © 2011-2022 走看看