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'