果业局网站建设,WordPress允许评论编辑,wordpress上传路径,做直播网站需要学什么Lodash 中文文档https://www.lodashjs.com/docs/lodash.omit/以下总结了在项目中常用的方法#xff0c;其他的慢慢更新语言#xff1a;cloneDeep这个方法类似_.clone#xff0c;除了它会递归拷贝 value。#xff08;注#xff1a;也叫深拷贝#xff09;参数value (*): 要…Lodash 中文文档https://www.lodashjs.com/docs/lodash.omit/以下总结了在项目中常用的方法其他的慢慢更新语言cloneDeep这个方法类似_.clone除了它会递归拷贝 value。注也叫深拷贝参数value (*): 要深拷贝的值。返回(*): 返回拷贝后的值。例子var objects [{ a: 1 }, { b: 2 }]; var deep _.cloneDeep(objects);console.log(deep[0] objects[0]);
isArray检查 value 是否是 Array 类对象。就是Array.isArray()添加版本0.1.0参数value (*): 要检查的值。返回(boolean): 如果value是一个数组返回 true否则返回 false。例子_.isArray([1, 2, 3]);
// true_.isArray(document.body.children);
// false
_.isArray(abc);
// false
_.isArray(_.noop);
// false_.isObject(value)检查 value 是否为 Object 的language type。 (例如 arrays, functions, objects, regexes,new Number(0), 以及 new String())添加版本0.1.0参数value (*): 要检查的值。返回(boolean): 如果 value 为一个对象那么返回 true否则返回 false。例子_.isObject({});
// true_.isObject([1, 2, 3]);
// true_.isObject(_.noop);
// true_.isObject(null);
// falsefunction isObject(value) {var type typeof value;return value ! null (type object || type function);
}_.isPlainObject(value)检查 value 是否是普通对象。 也就是说该对象由 Object 构造函数创建或者 [[Prototype]] 为 null 。添加版本0.8.0参数value (*): 要检查的值。返回(boolean): 如果 value 为一个普通对象那么返回 true否则返回 false。例子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源码function isPlainObject(value) {if (!isObjectLike(value) || baseGetTag(value) ! [object Object]) {return false;}var proto getPrototype(value);if (proto null) {return true;}var Ctor hasOwnProperty.call(proto, constructor) proto.constructor;return typeof Ctor function Ctor instanceof Ctor funcToString.call(Ctor) objectCtorString;
}_.isElement(value)检查 value 是否是可能是 DOM 元素。isObjectLike添加版本0.1.0参数value (*): 要检查的值。返回(boolean): 如果 value 是一个DOM元素那么返回 true否则返回 false。例子_.isElement(document.body);// true _.isElement(body);// falseisObjectLike(value) value.nodeType 1 !isPlainObject(value);满足类对象nodeType1并且不是一个普通对象isObjectLike(value) value.nodeType 1 !isPlainObject(value);_.isEmpty(value)检查 value 是否为一个空对象集合映射或者set。 判断的依据是除非是有枚举属性的对象length 大于 0 的 arguments object, array, string 或类jquery选择器。对象如果被认为为空那么他们没有自己的可枚举属性的对象。类数组值比如arguments对象arraybufferstring或者类jQuery集合的length 为 0被认为是空。类似的map映射和set 的size 为 0被认为是空。添加版本0.1.0参数value (*): 要检查的值。返回(boolean): 如果 value 为空那么返回 true否则返回 false。例子_.isEmpty(null);
// true
_.isEmpty(true);
// true
_.isEmpty(1);
// true
_.isEmpty([1, 2, 3]);
// false_.isEmpty({ a: 1 });
// false
_.isEmpty(0);
// true使用场景判断对象是否为空源码var hasOwnProperty objectProto.hasOwnProperty;
function isEmpty(value) {if (value null) {return true;}if (isArrayLike(value) (isArray(value) || typeof value string || typeof value.splice function ||isBuffer(value) || isTypedArray(value) || isArguments(value))) {return !value.length;}var tag getTag(value);if (tag mapTag || tag setTag) {return !value.size;}if (isPrototype(value)) {return !baseKeys(value).length;}for (var key in value) {if (hasOwnProperty.call(value, key)) {return false;}}return true;
}_.isEqual(value, other)执行深比较来确定两者的值是否相等。**注意: **这个方法支持比较 arrays, array buffers, booleans, date objects, error objects, maps, numbers, Object objects, regexes, sets, strings, symbols, 以及 typed arrays. Object 对象值比较自身的属性不包括继承的和可枚举的属性。 不支持函数和DOM节点比较。添加版本0.1.0参数value (*): 用来比较的值。other (*): 另一个用来比较的值。返回(boolean): 如果 两个值完全相同那么返回 true否则返回 false。例子var object { a: 1 };
var other { a: 1 };_.isEqual(object, other);
// true object other;
// false_.isFunction(value)检查 value 是否是 Function 对象。添加版本0.1.0参数value (*): 要检查的值返回(boolean): 如果 value 是一个函数那么返回 true否则返回 false。例子_.isFunction(_);
// true
_.isFunction(/abc/);
// false对象_.omit(object, [props]) 删除对象上的指定属性返回一个新的对象反向版_.pick; 这个方法一个对象这个对象由忽略属性之外的object自身和继承的可枚举属性组成。注可以理解为删除object对象的属性import { omit } from lodash;
var object { a: 1, b: 2, c: 3 };
const result omit(object, [a, c]);
console.log(result,object)打印 { b: 2 } { a: 1, b: 2, c: 3 }使用场景需要移除复杂对象的属性返回一个新的对象对原有对象不产生任何影响_.pick(object, [props])创建一个从 object 中选中的属性的对象参数object (Object): 来源对象。[props] (...(string|string[])): 要被忽略的属性。注单独指定或指定在数组中。返回(Object): 返回新对象。var object { a: 1, b: 2, c: 3 };_.pick(object, [a, c]);
// { a: 1, c: 3 }使用场景: 在页面传参较多的时候使用代码会看起来很简洁例如// 使用前
const saveparams{param1:baseInfo?.param1,...param10:baseInfo?.param10 }
await saveApi(saveparams);
// 使用后
saveApi(pick(baseInfo,[param1,...param10]))提醒若param9在baseInfo中没有这个属性pick生成的对象也不会有这个属性数组_.compact(array)创建一个新数组包含原数组中所有的非假值元素。例如false, null,0, , undefined, 和 NaN 都是被认为是“假值”。引入版本0.1.0参数array (Array): 待处理的数组返回值(Array): 返回过滤掉假值的新数组。例子_.compact([0, 1, false, 2, , 3]);
// [1, 2, 3]