Lodash 中文文档 (v3.10.1) - “Lang” 方法 - PeckZeg 的自留地
Lodash 中文文档 (v3.10.1) - “Lang” 方法
Translated by PeckZeg
Original Docs: Lodash v3.10.1 Docs
“Lang” 方法
_.clone(value, [isDeep], [customizer], [thisArg])
创建一个 value 的克隆。如果 isDeep 为 true,则嵌套对象也会被克隆,否则,其将被赋值为引用对象。如果指定了 customizer,那么其将被用来调用提供克隆的值。如果 customizer 返回 undefined,克隆过程将被方法本身代替。customizer 绑定 thisArg,并在执行时最多传入三个参数:value, [index|key], [object]。
注意:该方法基于 结构化克隆算法。arguments 对象的可枚举属性和构造函数创建的对象不同于被源生 Object 克隆出的 Object。不可克隆的值如函数、DOM 结点、映射、结合 和弱映射将会返回空对象。
参数
value(*) : 待克隆的值[isDeep](boolean) : 指定是否深度克隆[customizer](Function) : 克隆值的定制器函数[thisArg](*) :customizer绑定的this
返回
(*) : 返回克隆的值
示例
var users = [ { 'user': 'barney' }, { 'user': 'fred' }];var shallow = _.clone(users);shallow[0] === users[0];// → truevar deep = _.clone(users, true);deep[0] === users[0];// → false// 使用定制回调函数var el = _.clone(document.body, function(value) { if (_.isElement(value)) { return value.cloneNode(false); }});el === document.body// → falseel.nodeName// → BODYel.childNodes.length;// → 0_.cloneDeep(value, [customizer], [thisArg])
创建一个深度克隆对象。如果指定了 customizer,那么其将被用来调用提供克隆的值。如果 customizer 返回 undefined,克隆过程将被方法本身代替。customizer 绑定 thisArg,并在执行时最多传入三个参数:value, [index|key], [object]。
注意:该方法基于 结构化克隆算法。arguments 对象的可枚举属性和构造函数创建的对象不同于被源生 Object 克隆出的 Object。不可克隆的值如函数、DOM 结点、映射、结合 和弱映射将会返回空对象。
参数
value(*) : 待深度克隆的值[customizer](Function) : 克隆值的定制器函数[thisArg](*) :customizer绑定的this
返回
(*) : 返回深度克隆值
示例
var users = [ { 'user': 'barney' }, { 'user': 'fred' }];var deep = _.cloneDeep(users);deep[0] === users[0];// → false// 使用定制器回调函数var el = _.cloneDeep(document.body, function(value) { if (_.isElement(value)) { return value.cloneNode(true); }});el === document.body// → falseel.nodeName// → BODYel.childNodes.length;// → 20_.gt(value, other)
检查 value 是否大于 other。
参数
value(*) : 待比较的值other(*) : 另一个待比较的值
返回
(boolean) : value 大于 other 时返回 true,否则返回 false
示例
_.gt(3, 1);// → true_.gt(3, 3);// → false_.gt(1, 3);// → false_.gte(value, other)
检查 value 是否大于等于 other。
参数
value(*) : 待比较的值other(*) : 另一个待比较的值
返回
(boolean) : value 大于等于 other 时返回 true,否则返回 false
示例
_.gte(3, 1);// → true_.gte(3, 3);// → true_.gte(1, 3);// → false_.isArguments(value)
检查 value 是否被列为参数。
参数
value(*) : 待检查的值
返回
(boolean) : value 被列为参数则返回 true,否则返回 false
示例
_.isArguments(function() { return arguments; }());// → true_.isArguments([1, 2, 3]);// → false_.isArray(value)
检查 value 是否被列为数组对象。
参数
value(*) : 待检查的值
返回
(boolean) : 如果 value 为正确的分类返回 true,否则则返回 false
示例
_.isArray([1, 2, 3]);// → true_.isArray(function() { return arguments; }());// → false_.isBoolean(value)
检查 value 是否被列为原始布尔值或布尔值对象。
参数
value(*) : 待检查的值
返回
(boolean) : value 被正确归类时返回 true,否则返回 false
示例
_.isBoolean(false);// → true_.isBoolean(null);// → false_.isDate(value)
检查 value 是否被列为 Date 对象。
参数
value(*) : 待检查的值
返回
(boolean) : value 被正确归类时返回 true,否则返回 false
示例
_.isDate(new Date);// → true_.isDate('Mon April 23 2012');// → false_.isElement(value)
检查 value 是否为 DOM 元素。
参数
value(*) : 待检查的值
返回
(boolean) : value 为 DOM 元素时返回 true,否则返回 false
示例
_.isElement(document.body);// → true_.isElement('<body>');// → false_.isEmpty(value)
检查 value 是否为空。除了 arguments 对象、数组、字符串或 类 jQuery 集合的 length 值大于 0 或者对象拥有可枚举属性时,其他情况会把值考虑为空。
参数
value(Array|Object|string) : 待检查的值
返回
(boolean) : value 为空时返回 true,否则返回 false
示例
_.isEmpty(null);// → true_.isEmpty(true);// → true_.isEmpty(1);// → true_.isEmpty([1, 2, 3]);// → false_.isEmpty({ 'a': 1 });// → false_.isEqual(value, other, [customizer], [thisArg])
在两个值之间进行深度比较以确定它们是否相等。如果提供了 customizer,其将被用来执行比较两个值。如果 customizer 返回 undefined,那么比较过程被方法本身代替。customizer 绑定 thisArg 并在执行时最多传入三个值:value, other, index|key。
注意:该方法支持比较数组、布尔值、Date 对象,数值,Object 对象,正则表达式和字符串。对象间比较其自有值而非内置值。不支持比较函数和 DOM 结点。提供一个定制器函数用来扩展比较其他值的支持。
别名
_.eq
参数
value(*) : 待比较的值other(*) : 另一个待比较的值[customizer](Function) : 定制比较值的函数[thisArg](*) :customizer绑定的this
返回
(boolean) : 如果值之间相等时返回 true,否则返回 false
示例
var object = { 'user': 'fred' };var other = { 'user': 'fred' };object == other;// → false_.isEqual(object, other);// → true// using a customizer callbackvar array = ['hello', 'goodbye'];var other = ['hi', 'goodbye'];_.isEqual(array, other, function(value, other) { if (_.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/)) { return true; }});// → true_.isError(value)
检查值是否为 Error、 EvalError、 RangeError、 ReferenceError、 SyntaxError、 TypeError 或 URIError 对象。
参数
value(*) : 待检查的值
返回
(boolean) : value 为错误对象时返回 true,否则返回 false
示例
_.isError(new Error);// → true_.isError(Error);// → false_.isFinite(value)
检查 value 是否为原始无限数值。
注意:该方法基于 Number.isFinite。
参数
value(*) : 待检查的值
返回
(boolean) : value 为无限数值返回 true,否则返回 false。
示例
_.isFinite(10);// → true_.isFinite('10');// → false_.isFinite(true);// → false_.isFinite(Object(10));// → false_.isFinite(Infinity);// → false_.isFunction(value)
检查 value 是否被列为函数对象。
参数
value(*) : 待检查的值
返回
(boolean) : value 被正确归类时返回 true,否则返回 false
示例
_.isFunction(_);// → true_.isFunction(/abc/);// → false_.isMatch(object, source, [customizer], [thisArg])
在 object 与 source 之间执行深度比较,以决定 object 是否包含相等的属性值。如果提供了 customizer,其将被用来执行比较两个值。如果 customizer 返回 undefined,那么比较过程被方法本身代替。customizer 绑定 thisArg 并在执行时最多传入三个值:value, other, index|key。
注意:该方法支持比较数组的属性、布尔值、Date 对象,数值、Object 对象,正则表达式和数值。不支持比较函数和 DOM 结点。提供一个定制器函数用来扩展比较其他值的支持。
参数
object(Object) : 待检查的值source(Object) : 待匹配的属性值的对象[customizer](Function) : 定制比较值的函数[thisArg](*) :customizer绑定的this
返回
(boolean) : 如果 object 匹配返回 true,否则返回 false
示例
var object = { 'user': 'fred', 'age': 40 };_.isMatch(object, { 'age': 40 });// → true_.isMatch(object, { 'age': 36 });// → false// 使用定制器回调函数var object = { 'greeting': 'hello' };var source = { 'greeting': 'hi' };_.isMatch(object, source, function(value, other) { return _.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/) || undefined;});// → true_.isNaN(value)
检查 value 是否为 NaN(非数值)。
注意:该方法与 isNaN不同,对 undefined 和其他非数值都返回 true
参数
value(*) : 待检查的值
返回
(boolean) : 如果 value 为 NaN 返回 true,否则返回 false
示例
_.isNaN(NaN);// → true_.isNaN(new Number(NaN));// → trueisNaN(undefined);// → true_.isNaN(undefined);// → false_.isNative(value)
检查 value 是否为原生函数。
参数
value(*) : 待检查的值
返回
(boolean) : value 为原生函数时返回 true,否则返回 false
示例
_.isNative(Array.prototype.push);// → true_.isNative(_);// → false_.isNull(value)
检查 value 是否为 null。
参数
value(*) : 待检查的值
返回
(boolean) : value 为 null 时返回 true,否则返回 false
示例
_.isNull(null);// → true_.isNull(void 0);// → false_.isNumber(value)
检查 value 是否被指定为 Number 字面量或对象。
注意:如果要排除被指定为数值的 Infinity、-Infinity 和 NaN,使用 _.isFinite 方法。
参数
value(*) : 待检查的值
返回
(boolean) : value 正确被归类时返回 true,否则返回 false
示例
_.isNumber(8.4);// → true_.isNumber(NaN);// → true_.isNumber('8.4');// → false_.isObject(value)
检查 value 是否为 Object 语言类型。(例:数组、函数、对象、正则表达式,new Number(0) 和 new String(''))
参数
value(*) : 待检查的值
返回
(boolean) : value 为对象时返回 true,否则返回 false
示例
_.isObject({});// → true_.isObject([1, 2, 3]);// → true_.isObject(1);// → false_.isPlainObject(value)
检查 value 是否为一个纯粹的对象,纯粹的对象就是使用 Object 构造器创建的对象或一个 [[Prototype]] 为 null 的对象。
注意:该方法假定由 Object 构造器创建的对象没有内置可枚举属性。
参数
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_.isRegExp(value)
检查 value 是否被指定为 RegExp 对象。
参数
value(*) : 待检查的值
返回
(boolean) : value 被正确归类时返回 true,否则返回 false
示例
_.isRegExp(/abc/);// → true_.isRegExp('/abc/');// → false_.isString(value)
检查 value 是否被归类为 String 字面量或对象。
参数
value(*) : 待检查的值
返回
(boolean) : value 被正确归类时返回 true,否则返回 false
示例
_.isString('abc');// → true_.isString(1);// → false_.isTypedArray(value)
检查 value 是否被归类为类型数组。
参数
value(*) : 待检查的值
返回
(boolean) : value 被正确归类时返回 true,否则返回 false
示例
_.isTypedArray(new Uint8Array);// → true_.isTypedArray([]);// → false_.isUndefined(value)
检查 value 是否为 undefined。
参数
value(*) : 待检查的值
返回
(boolean) : value 为 undefined 时返回 true,否则返回 false
示例
_.isUndefined(void 0);// → true_.isUndefined(null);// → false_.lt(value, other)
检查 value 是否小于 other。
参数
value(*) : 待比较的值other(*) : 另一个待比较的值
返回
(boolean) : value 比 other 小时返回 true,否则返回 false
示例
_.lt(1, 3);// → true_.lt(3, 3);// → false_.lt(3, 1);// → false_.lte(value, other)
检查 value 是否小于等于 other。
参数
value(*) : 待比较的值other(*) : 另一个待比较的值
返回
(boolean) : value 小于或等于other 时返回 true,否则返回 false
示例
_.lte(1, 3);// → true_.lte(3, 3);// → true_.lte(3, 1);// → false_.toArray(value)
将 value 转换为数组。
参数
value_(*)_: 待转换的值
返回
(Array) : 返回转换后的数组
示例
(function() { return _.toArray(arguments).slice(1);}(1, 2, 3));// → [2, 3]_.toPlainObject(value)
转换 value 为纯粹的对象,该方法会将 value 的内置可枚举对象转换为纯粹的对象的自有属性。
参数
value(*) : 待转换的值
返回
(Object) : 返回已转换的纯粹的对象
示例
function Foo() { this.b = 2;}Foo.prototype.c = 3;_.assign({ 'a': 1 }, new Foo);// → { 'a': 1, 'b': 2 }_.assign({ 'a': 1 }, _.toPlainObject(new Foo));// → { 'a': 1, 'b': 2, 'c': 3 }

