• lodash笔记(语言篇)


    安装引入

    • npm i --save lodash
    • 使用页面
      1、全部引入 import _ from ‘lodash’
      2、按需引入 import x from ‘lodash/x’

    详情见官网


    1、_.castArray(value)

    • value (*): 要处理的值。

    如果 value 不是数组, 那么强制转为数组。

    _.castArray(1);
    // => [1]
     
    _.castArray({ 'a': 1 });
    // => [{ 'a': 1 }]
     
    _.castArray('abc');
    // => ['abc']
     
    _.castArray(null);
    // => [null]
     
    _.castArray(undefined);
    // => [undefined]
     
    _.castArray();
    // => []
     
    var array = [1, 2, 3];
    console.log(_.castArray(array) === array);
    // => true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2、_.clone(value)

    • value (*): 要拷贝的值

    创建一个 value 的浅拷贝

    注意: 这个方法参考自structured clone algorithm 以及支持 arrays、array buffers、 booleans、 date objects、maps、 numbers, Object 对象, regexes, sets, strings, symbols, 以及 typed arrays。 arguments对象的可枚举属性会拷贝为普通对象。 一些不可拷贝的对象,例如error objects、functions, DOM nodes, 以及 WeakMaps 会返回空对象。

    var objects = [{ 'a': 1 }, { 'b': 2 }];
     
    var shallow = _.clone(objects);
    console.log(shallow[0] === objects[0]);
    // => true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、_.cloneDeep(value)

    • value (*): 要深拷贝的值。

    这个方法类似_.clone,除了它会递归拷贝 value。(注:也叫深拷贝)。

    var objects = [{ 'a': 1 }, { 'b': 2 }];
     
    var deep = _.cloneDeep(objects);
    console.log(deep[0] === objects[0]);
    // => false
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4、_.eq(value, other)

    • value (): 要比较的值。
      other (
      ): 另一个要比较的值。。

    执行SameValueZero 比较两者的值,来确定它们是否相等。

    var object = { 'a': 1 };
    var other = { 'a': 1 };
     
    _.eq(object, object);
    // => true
     
    _.eq(object, other);
    // => false
     
    _.eq('a', 'a');
    // => true
     
    _.eq('a', Object('a'));
    // => false
     
    _.eq(NaN, NaN);
    // => true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    5、_.gt(value, other)

    • value (): 要比较的值。
      other (
      ): 另一个要比较的值。

    检查 value是否大于 other。

    _.gt(3, 1);
    // => true
     
    _.gt(3, 3);
    // => false
     
    _.gt(1, 3);
    // => false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    _.lt(value, other)

    • value (): 用来比较的值。
      other (
      ): 另一个用来比较的值。

    检查 value 是否小于 other。

    _.lt(1, 3);
    // => true
     
    _.lt(3, 3);
    // => false
     
    _.lt(3, 1);
    // => false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    6、_.gte(value, other)

    • value (): 要比较的值。
      other (
      ): 另一个要比较的值。

    检查 value是否大于或者等于 other。

    _.gte(3, 1);
    // => true
     
    _.gte(3, 3);
    // => true
     
    _.gte(1, 3);
    // => false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    _.lte(value, other)

    • value (): 用来比较的值。
      other (
      ): 另一个用来比较的值。

    检查 value 是否小于等于 other。

    _.lte(1, 3);
    // => true
     
    _.lte(3, 3);
    // => true
     
    _.lte(3, 1);
    // => false
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    7、_.isArray(value)

    • value (*): 要检查的值。

    检查 value 是否是 Array 类对象。。

    _.isArray([1, 2, 3]);
    // => true
     
    _.isArray(document.body.children);
    // => false
     
    _.isArray('abc');
    // => false
     
    _.isArray(_.noop);
    // => false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    8、_.isBoolean(value)

    • value (*): 要检查的值。

    检查 value 是否是原始 boolean 类型或者对象。

    _.isBoolean(false);
    // => true
     
    _.isBoolean(null);
    // => false
    
    _.isBoolean(0);
    // => false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    9、_.isEmpty(value)

    • value (*): 要检查的值。

    检查 value 是否为一个空对象,集合,映射或者set

    _.isEmpty(null);
    // => true
     
    _.isEmpty(true);
    // => true
     
    _.isEmpty(1);
    // => true
     
    _.isEmpty([1, 2, 3]);
    // => false
     
    _.isEmpty({ 'a': 1 });
    // => false
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    10、_.isEqual(value, other)

    • value (): 用来比较的值。
      other (
      ): 另一个用来比较的值。

    执行深比较来确定两者的值是否相等。

    var object = { 'a': 1 };
    var other = { 'a': 1 };
     
    _.isEqual(object, other);
    // => true
     
    object === other;
    // => false
    
    
    
    var object = { 'a': 1, b: { c: 1 } };
    var other = { 'a': 1, b: { c: 1 } };
    
    _.isEqual(object, other)
    // => true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    11、_.isInteger(value)

    • value (*): 要检查的值。

    检查 value 是否为一个整数。

    _.isInteger(3);
    // => true
     
    _.isInteger(Number.MIN_VALUE);
    // => false
     
    _.isInteger(Infinity);
    // => false
     
    _.isInteger('3');
    // => false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    12、_.isInteger(value)

    • value (*): 要检查的值。

    检查 value 是否是 NaN。

    _.isNaN(NaN);
    // => true
     
    _.isNaN(new Number(NaN));
    // => true
     
    isNaN(undefined);
    // => true
     
    _.isNaN(undefined);
    // => false
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    13、_.isInteger(value)

    • value (*): 要检查的值。

    检查 value 是否是 null 或者 undefined。

    _.isNil(null);
    // => true
     
    _.isNil(void 0);
    // => true
     
    _.isNil(NaN);
    // => false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    14、_.isNull(value)

    • value (*): 要检查的值。

    检查 valuealue 是否是 null。

    _.isNull(null);
    // => true
     
    _.isNull(void 0);
    // => false
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    15、_.isNumber(value)

    • value (*): 要检查的值。

    检查 value 是否是原始Number数值型 或者 对象。

    _.isNumber(3);
    // => true
     
    _.isNumber(Number.MIN_VALUE);
    // => true
     
    _.isNumber(Infinity);
    // => true
     
    _.isNumber('3');
    // => false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    16、_.isPlainObject(value)

    • value (*): 要检查的值。

    检查 value 是否是普通对象。

    function Foo() {
      this.a = 1;
    }
     
    _.isPlainObject(new Foo);
    // => false
     
    _.isPlainObject([1, 2, 3]);
    // => false
     
    _.isPlainObject({ 'x': 0, 'y': 0 });
    // => true
     
    _.isPlainObject(Object.create(null));
    // => true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    17、_.isString(value)

    • value (*): 要检查的值。

    检查 value 是否是原始字符串String或者对象。。

    _.isString('abc');
    // => true
     
    _.isString(1);
    // => false
    
    • 1
    • 2
    • 3
    • 4
    • 5

    18、_.isUndefined(value)

    • value (*): 要检查的值。

    检查 value 是否是 undefined.

    _.isUndefined(void 0);
    // => true
     
    _.isUndefined(null);
    // => false
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    19、_.toString(value)

    • value (*): 要处理的值。

    转换 value 为字符串。 null 和 undefined 将返回空字符串。-0 将被转换为字符串"-0"。

    _.toString(null);
    // => ''
     
    _.toString(-0);
    // => '-0'
     
    _.toString([1, 2, 3]);
    // => '1,2,3'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

  • 相关阅读:
    【面试普通人VS高手系列】b树和b+树的理解
    DPDK的VFIO
    数据结构与算法(九):分治与回溯算法
    密码学中的RSA算法与椭圆曲线算法
    Verilog功能模块——异步FIFO
    Ubuntu18.04安装mysql8.0,亲测有效(内附安装时会遇到的一些情况)
    基于transformer的心脑血管心脏病疾病预测
    2020蓝桥杯国赛B组-搬砖-(贪心排序+01背包)
    Dubbo可以代替Feign、Hystrix、Sentinel,Ribbon?
    [STL]map与set
  • 原文地址:https://blog.csdn.net/qq_43388107/article/details/126657366