当前位置: 首页 > news >正文

lodash笔记(语言篇)

安装引入

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

详情见官网


1、_.castArray(value)

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

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

var users = [
  { 'user': 'fred',   'age': 48 },
  { 'user': 'barney', 'age': 34 },
  { 'user': 'fred',   'age': 40 },
  { 'user': 'barney', 'age': 36 }
];
 
_.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

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

3、_.cloneDeep(value)

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

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

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

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


5、_.gt(value, other)

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

检查 value是否大于 other。

_.gt(3, 1);
// => true
 
_.gt(3, 3);
// => false
 
_.gt(1, 3);
// => false

_.lt(value, other)

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

检查 value 是否小于 other。

_.lt(1, 3);
// => true
 
_.lt(3, 3);
// => false
 
_.lt(3, 1);
// => false

6、_.gte(value, other)

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

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

_.gte(3, 1);
// => true
 
_.gte(3, 3);
// => true
 
_.gte(1, 3);
// => false

_.lte(value, other)

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

检查 value 是否小于等于 other。

_.lte(1, 3);
// => true
 
_.lte(3, 3);
// => true
 
_.lte(3, 1);
// => false


7、_.isArray(value)

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

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

_.isArray([1, 2, 3]);
// => true
 
_.isArray(document.body.children);
// => false
 
_.isArray('abc');
// => false
 
_.isArray(_.noop);
// => false

8、_.isBoolean(value)

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

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

_.isBoolean(false);
// => true
 
_.isBoolean(null);
// => false

_.isBoolean(0);
// => false

9、_.isEmpty(value)

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

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

_.isEmpty(null);
// => true
 
_.isEmpty(true);
// => true
 
_.isEmpty(1);
// => true
 
_.isEmpty([1, 2, 3]);
// => false
 
_.isEmpty({ 'a': 1 });
// => false


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

11、_.isInteger(value)

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

检查 value 是否为一个整数。

_.isInteger(3);
// => true
 
_.isInteger(Number.MIN_VALUE);
// => false
 
_.isInteger(Infinity);
// => false
 
_.isInteger('3');
// => false

12、_.isInteger(value)

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

检查 value 是否是 NaN。

_.isNaN(NaN);
// => true
 
_.isNaN(new Number(NaN));
// => true
 
isNaN(undefined);
// => true
 
_.isNaN(undefined);
// => false


13、_.isInteger(value)

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

检查 value 是否是 null 或者 undefined。

_.isNil(null);
// => true
 
_.isNil(void 0);
// => true
 
_.isNil(NaN);
// => false

14、_.isNull(value)

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

检查 valuealue 是否是 null。

_.isNull(null);
// => true
 
_.isNull(void 0);
// => false


15、_.isNumber(value)

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

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

_.isNumber(3);
// => true
 
_.isNumber(Number.MIN_VALUE);
// => true
 
_.isNumber(Infinity);
// => true
 
_.isNumber('3');
// => false

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


17、_.isString(value)

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

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

_.isString('abc');
// => true
 
_.isString(1);
// => false

18、_.isUndefined(value)

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

检查 value 是否是 undefined.

_.isUndefined(void 0);
// => true
 
_.isUndefined(null);
// => false


19、_.toString(value)

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

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

_.toString(null);
// => ''
 
_.toString(-0);
// => '-0'
 
_.toString([1, 2, 3]);
// => '1,2,3'

相关文章:

  • elasticsearch 6.3.2 集群配置
  • 操作系统复习:线程
  • Web3社交基础设施SBT
  • SAP-ABAP-SELECT语法SQL语法详解
  • 化妆品怎么在百度百科上创建词条,品牌上百度百科的条件和操作
  • DOM--事件
  • 这12款idea插件,能让你代码飞起来
  • 基于springboot+vue的新生宿舍管理系统 elementui
  • spring 事务的传播行为
  • 再写一遍的网络流
  • Linux之 如何查看文件是`硬链接`还是`软链接`
  • Anaconda的安装与卸载
  • k8s 集群部署(二)
  • AMS笔记
  • SAP 电商云 Spartacus UI 的 Product Category Navigation UI 实现
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • .pyc 想到的一些问题
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Android交互
  • chrome扩展demo1-小时钟
  • FineReport中如何实现自动滚屏效果
  • JAVA 学习IO流
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java小白进阶笔记(3)-初级面向对象
  • JSDuck 与 AngularJS 融合技巧
  • nginx 配置多 域名 + 多 https
  • Puppeteer:浏览器控制器
  • PV统计优化设计
  • Python爬虫--- 1.3 BS4库的解析器
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SAP云平台里Global Account和Sub Account的关系
  • spring + angular 实现导出excel
  • Vue.js-Day01
  • vue自定义指令实现v-tap插件
  • yii2权限控制rbac之rule详细讲解
  • 从零开始学习部署
  • 高性能JavaScript阅读简记(三)
  • 诡异!React stopPropagation失灵
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 一文看透浏览器架构
  • 因为阿里,他们成了“杭漂”
  • 鱼骨图 - 如何绘制?
  • 终端用户监控:真实用户监控还是模拟监控?
  • 最简单的无缝轮播
  • nb
  • ​520就是要宠粉,你的心头书我买单
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ###C语言程序设计-----C语言学习(6)#
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (floyd+补集) poj 3275
  • (笔试题)合法字符串
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二)Linux——Linux常用指令
  • (附源码)php投票系统 毕业设计 121500