?
This document uses PHP Chinese website manual Release
value
如果不是數(shù)組,則將其轉(zhuǎn)換為數(shù)組。
4.4.0
value
(*):要檢查的值。
(Array):返回cast數(shù)組。
_.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
創(chuàng)建一個淺層克隆value
。
注意:此方法松散地基于結(jié)構(gòu)化克隆算法,并支持克隆數(shù)組,數(shù)組緩沖區(qū),布爾值,日期對象,映射,數(shù)字,對象對象,正則表達(dá)式,集合,字符串,符號和類型化數(shù)組。 參數(shù)對象的自身枚舉屬性被克隆為普通對象。 返回一個空對象用于不可克隆的值,例如錯誤對象,函數(shù),DOM節(jié)點(diǎn)和WeakMaps。
0.1.0
value
(*):克隆的值。
(*):返回克隆值。
var objects = [{ 'a': 1 }, { 'b': 2 }]; var shallow = _.clone(objects); console.log(shallow[0] === objects[0]); // => true
這個方法就像_.clone,只不過它遞歸地克隆了值。
1.0.0
value
(*):遞歸克隆的值。
(*):返回深度克隆值。
var objects = [{ 'a': 1 }, { 'b': 2 }]; var deep = _.cloneDeep(objects); console.log(deep[0] === objects[0]); // => false
這個方法就像_.cloneWith,只不過它遞歸地克隆了值。
4.0.0
value
(*):遞歸克隆的值。
[customizer]
(功能):定制克隆的功能。
(*):返回深度克隆值。
function customizer(value) { if (_.isElement(value)) { return value.cloneNode(true); }} var el = _.cloneDeepWith(document.body, customizer); console.log(el === document.body); // => falseconsole.log(el.nodeName); // => 'BODY'console.log(el.childNodes.length); // => 20
此方法與_.clone相似,只是它接受調(diào)用以產(chǎn)生克隆值的定制程序。 如果定制程序返回未定義,則克隆由該方法處理。 定制器最多可以調(diào)用四個參數(shù); (值,索引|鍵,對象,堆棧)。
4.0.0
value
(*):克隆的值。
[customizer]
(功能):定制克隆的功能。
(*):返回克隆值。
function customizer(value) { if (_.isElement(value)) { return value.cloneNode(false); }} var el = _.cloneWith(document.body, customizer); console.log(el === document.body); // => falseconsole.log(el.nodeName); // => 'BODY'console.log(el.childNodes.length); // => 0
通過使用對象的相應(yīng)屬性值調(diào)用源的謂詞屬性來檢查對象是否符合源。
注:當(dāng)部分應(yīng)用源時,此方法等同于_.conforms。
4.14.0
object
(對象):要檢查的對象。
source
(Object):屬性謂詞符合的對象。
(boolean):如果對象符合則返回true,否則返回false。
var object = { 'a': 1, 'b': 2 }; _.conformsTo(object, { 'b': function(n) { return n > 1; } }); // => true _.conformsTo(object, { 'b': function(n) { return n > 2; } }); // => false
執(zhí)行SameValueZero
兩個值之間的比較以確定它們是否相等。
4.0.0
value
(*):要比較的值。
other
(*):要比較的另一個值。
(boolean):如果值相等,則返回true,否則返回false。
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
檢查是否value
大于other
。
3.9.0
value
(*):要比較的值。
other
(*):要比較的另一個值。
(布爾值):如果值大于其他值,則返回true,否則返回false。
_.gt(3, 1);// => true _.gt(3, 3);// => false _.gt(1, 3);// => false
檢查是否value
大于或等于other
。
3.9.0
value
(*):要比較的值。
other
(*):要比較的另一個值。
(boolean):如果value大于或等于other,則返回true,否則返回false。
_.gte(3, 1);// => true _.gte(3, 3);// => true _.gte(1, 3);// => false
檢查是否value
可能是一個arguments
對象。
0.1.0
value
(*):要檢查的值。
(boolean):如果value是一個參數(shù)對象,則返回true,否則返回false。
_.isArguments(function() { return arguments; }());// => true _.isArguments([1, 2, 3]);// => false
檢查值是否被分類為數(shù)組對象。
0.1.0
value
(*):要檢查的值。
(boolean):如果value是一個數(shù)組,則返回true,否則返回false。
_.isArray([1, 2, 3]);// => true _.isArray(document.body.children);// => false _.isArray('abc');// => false _.isArray(_.noop);// => false
檢查值是否被分類為ArrayBuffer對象。
4.3.0
value
(*):要檢查的值。
(boolean):如果value是一個數(shù)組緩沖區(qū),則返回true,否則返回false。
_.isArrayBuffer(new ArrayBuffer(2));// => true _.isArrayBuffer(new Array(2));// => false
檢查值是否類似數(shù)組。 如果一個值不是一個函數(shù),并且value.length是一個大于或等于0且小于或等于Number.MAX_SAFE_INTEGER的整數(shù),則該值被認(rèn)為是類似數(shù)組的。
4.0.0
value
(*):要檢查的值。
boolean):如果value是類數(shù)組,則返回true,否則返回false。
_.isArrayLike([1, 2, 3]);// => true _.isArrayLike(document.body.children);// => true _.isArrayLike('abc');// => true _.isArrayLike(_.noop);// => false
這個方法就像_.isArrayLike,只是它也檢查值是否是一個對象。
4.0.0
value
(*):要檢查的值。
(boolean):如果value是一個類似數(shù)組的對象,則返回true,否則返回false。
_.isArrayLikeObject([1, 2, 3]);// => true _.isArrayLikeObject(document.body.children);// => true _.isArrayLikeObject('abc');// => false _.isArrayLikeObject(_.noop);// => false
檢查值是否被分類為布爾基元或?qū)ο蟆?/p>
0.1.0
value
(*):要檢查的值。
(boolean):如果value是一個布爾值,則返回true,否則返回false。
_.isBoolean(false);// => true _.isBoolean(null);// => false
檢查是否value
是緩沖區(qū)。
4.3.0
value
(*):要檢查的值。
(boolean):如果value是一個緩沖區(qū),則返回true,否則返回false。
_.isBuffer(new Buffer(2));// => true _.isBuffer(new Uint8Array(2));// => false
檢查值是否被分類為Date對象。
0.1.0
value
(*):要檢查的值。
(boolean):如果value是日期對象,則返回true,否則返回false。
_.isDate(new Date);// => true _.isDate('Mon April 23 2012');// => false
檢查值是否可能是DOM元素。
0.1.0
value
(*):要檢查的值。
(boolean):如果value是一個DOM元素,則返回true,否則返回false。
_.isElement(document.body);// => true _.isElement('<body>');// => false
檢查是否value
為空對象,collection, map,或 set.
如果對象沒有自己的可枚舉字符串鍵控屬性,則它們被認(rèn)為是空的。
如果參數(shù)對象,數(shù)組,緩沖區(qū),字符串或類似jQuery的集合的長度為0,則它們將被視為空。類似地,如果地圖和集合的大小為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
在兩個值之間進(jìn)行深入比較以確定它們是否相等。
注意:此方法支持比較數(shù)組,數(shù)組緩沖區(qū),布爾值,日期對象,錯誤對象,映射,數(shù)字, Object
對象,正則表達(dá)式,集合,字符串,符號和類型數(shù)組。Object
對象通過它們自己的而不是繼承的可枚舉屬性進(jìn)行比較。函數(shù)和DOM節(jié)點(diǎn)通過嚴(yán)格的等式進(jìn)行比較,即===
。
0.1.0
value
(*):要比較的值。
other
(*):要比較的另一個值。
(boolean):如果值相等,則返回true,否則返回false。
var object = { 'a': 1 };var other = { 'a': 1 }; _.isEqual(object, other);// => true object === other;// => false
此方法與_.isEqual類似,只是它接受調(diào)用以比較值的定制程序。 如果定制程序返回未定義,則比較由該方法處理。 定制器最多可以調(diào)用6個參數(shù):(objValue,othValue,index | key,object,other,stack)。
4.0.0
value
(*):要比較的值。
other
(*):要比較的另一個值。
[customizer]
(功能):自定義比較的功能。
(boolean):如果值相等,則返回true,否則返回false。
function isGreeting(value) { return /^h(?:i|ello)$/.test(value);} function customizer(objValue, othValue) { if (isGreeting(objValue) && isGreeting(othValue)) { return true; }} var array = ['hello', 'goodbye']; var other = ['hi', 'goodbye']; _.isEqualWith(array, other, customizer);// => true
檢查值是否為Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError或URIError對象。
3.0.0
value
(*):要檢查的值。
(boolean):如果value是一個錯誤對象,則返回true,否則返回false。
_.isError(new Error);// => true _.isError(Error);// => false
檢查是否value
是有限的原始數(shù)字。
注意:此方法基于Number.isFinite
。
0.1.0
value
(*):要檢查的值。
(boolean):如果value是有限數(shù)字,則返回true,否則返回false。
_.isFinite(3);// => true _.isFinite(Number.MIN_VALUE);// => true _.isFinite(Infinity);// => false _.isFinite('3');// => false
檢查值是否被分類為Function對象。
0.1.0
value
(*):要檢查的值。
(boolean):如果value是一個函數(shù),則返回true,否則返回false。
_.isFunction(_);// => true _.isFunction(/abc/);// => false
檢查是否value
是整數(shù)。
注意:此方法基于Number.isInteger
。
4.0.0
value
(*):要檢查的值。
(boolean):如果value是一個整數(shù),則返回true,否則返回false。
_.isInteger(3);// => true _.isInteger(Number.MIN_VALUE);// => false _.isInteger(Infinity);// => false _.isInteger('3');// => false
檢查值是否是一個有效的類似數(shù)組的長度。
注意:這個方法松散地基于ToLength
。
4.0.0
value
(*):要檢查的值。
(boolean):如果value是有效長度,則返回true,否則返回false。
_.isLength(3);// => true _.isLength(Number.MIN_VALUE);// => false _.isLength(Infinity);// => false _.isLength('3');// => false
檢查值是否被分類為Map對象。
4.3.0
value
(*):要檢查的值。
(boolean):如果value是一個映射,則返回true,否則返回false。
_.isMap(new Map);// => true _.isMap(new WeakMap);// => false
在對象和源之間執(zhí)行部分深層比較以確定對象是否包含等效屬性值。
注意:當(dāng)部分應(yīng)用源時,此方法等同于_.matches。
部分比較將分別將空數(shù)組和空對象源值與任何數(shù)組或?qū)ο笾颠M(jìn)行匹配。 請參閱_.isEqual以獲取支持的值比較列表。
3.0.0
object
(對象):要檢查的對象。
source
(Object):要匹配的屬性值的對象。
(boolean):如果object匹配,則返回true,否則返回false。
var object = { 'a': 1, 'b': 2 }; _.isMatch(object, { 'b': 2 });// => true _.isMatch(object, { 'b': 1 });// => false
此方法與_.isMatch類似,不同之處在于它接受調(diào)用以比較值的定制程序。 如果定制程序返回未定義,則比較由該方法處理。 定制器使用五個參數(shù)調(diào)用:(objValue,srcValue,index | key,object,source)。
4.0.0
object
(對象):要檢查的對象。
source
(Object):要匹配的屬性值的對象。
[customizer]
(功能):自定義比較的功能。
(boolean):如果object匹配,則返回true,否則返回false。
function isGreeting(value) { return /^h(?:i|ello)$/.test(value);} function customizer(objValue, srcValue) { if (isGreeting(objValue) && isGreeting(srcValue)) { return true; }} var object = { 'greeting': 'hello' }; var source = { 'greeting': 'hi' }; _.isMatchWith(object, source, customizer);// => true
檢查值是否為NaN。
注意:此方法基于Number.isNaN,與全局isNaN不同,后者對未定義的值和其他非數(shù)值返回true。
0.1.0
value
(*):要檢查的值。
(boolean):如果值為NaN,則返回true,否則返回false。
_.isNaN(NaN);// => true _.isNaN(new Number(NaN));// => true isNaN(undefined);// => true _.isNaN(undefined);// => false
檢查是否value
是原始的本機(jī)功能。
注意:由于core-js繞過了這種檢測,因此此方法無法可靠地檢測到存在core-js包時的本機(jī)函數(shù)。盡管有多個請求,core-js維護(hù)人員已經(jīng)明確表示:任何修復(fù)檢測的嘗試都會受到阻礙。因此,我們別無選擇,只能拋出一個錯誤。不幸的是,這也會影響包,比如babel-polyfill,它依賴于core-js。
3.0.0
value
(*):要檢查的值。
(boolean):如果value是本地函數(shù),則返回true,否則返回false。
_.isNative(Array.prototype.push);// => true _.isNative(_);// => false
檢查是否value
為null
或undefined
。
4.0.0
value
(*):要檢查的值。
(boolean):如果value為nullish,則返回true,否則返回false。
_.isNil(null);// => true _.isNil(void 0);// => true _.isNil(NaN);// => false
檢查是否value
是null
。
0.1.0
value
(*):要檢查的值。
(boolean):如果value為null,則返回true,否則返回false。
_.isNull(null);// => true _.isNull(void 0);// => false
檢查是否value
被分類為Number
基元或?qū)ο蟆?/p>
注意:要排除Infinity
,-Infinity
和NaN
分類為數(shù)字,請使用該_.isFinite
方法。
0.1.0
value
(*):要檢查的值。
(boolean):如果value是一個數(shù)字,則返回true,否則返回false。
_.isNumber(3);// => true _.isNumber(Number.MIN_VALUE);// => true _.isNumber(Infinity);// => true _.isNumber('3');// => false
檢查是否value
是語言類的Object
。 (例如數(shù)組,函數(shù),對象,正則表達(dá)式, 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);// => false
檢查是否value
像對象一樣。如果值不是 “對象” null
,并且typeof
結(jié)果為“對象”,則值為對象。
4.0.0
value
(*):要檢查的值。
(boolean):如果值是對象狀態(tài),則返回true,否則返回false。
_.isObjectLike({});// => true _.isObjectLike([1, 2, 3]);// => true _.isObjectLike(_.noop);// => false _.isObjectLike(null);// => false
檢查是否value
是一個普通的對象,即,由所述創(chuàng)建的對象Object
構(gòu)造器或是用[[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
檢查是否value
被分類為RegExp
對象。
0.1.0
value
(*):要檢查的值。
(boolean):如果value是一個正則表達(dá)式,則返回true,否則返回false。
_.isRegExp(/abc/);// => true _.isRegExp('/abc/');// => false
檢查是否value
是安全整數(shù)。一個整數(shù)是安全的,如果它是一個IEEE-754雙精度數(shù)字,而不是一個四舍五入的不安全整數(shù)的結(jié)果。
注意:此方法基于Number.isSafeInteger
。
4.0.0
value
(*):要檢查的值。
(boolean):如果 value
為安全整數(shù),返回true
,否則返回false
。
_.isSafeInteger(3);// => true _.isSafeInteger(Number.MIN_VALUE);// => false _.isSafeInteger(Infinity);// => false _.isSafeInteger('3');// => false
檢查是否value
被分類為Set
對象。
4.3.0
value
(*):要檢查的值。
(boolean):返回true
是否value
是一個集合,否則false
。
_.isSet(new Set);// => true _.isSet(new WeakSet);// => false
檢查value
是否被分類為String
基元或?qū)ο蟆?/p>
0.1.0
value
(*):要檢查的值。
(boolean):返回true當(dāng)value是符號的時候,否則返回false。
_.isString('abc');// => true _.isString(1);// => false
檢查value
是否被分類為Symbol
基元或?qū)ο蟆?/p>
4.0.0
value
(*):要檢查的值。
(boolean):返回true
當(dāng)value
是符號的時候,否則返回false
。
_.isSymbol(Symbol.iterator);// => true _.isSymbol('abc');// => false
檢查value
是否被分類為類型數(shù)組。
3.0.0
value
(*):要檢查的值。
(boolean):返回true
當(dāng)value
是符號的時候,否則返回false
。
_.isTypedArray(new Uint8Array);// => true _.isTypedArray([]);// => false
檢查value
值是否是nudefined
。
0.1.0
value
(*):要檢查的值。
(boolean):返回true
當(dāng)value
是符號的時候,否則返回false
。
_.isUndefined(void 0);// => true _.isUndefined(null);// => false
檢查value
是否被分類為WeakMap
對象。
4.3.0
value
(*):要檢查的值。
(boolean):返回true
如果當(dāng)value
是弱映射,否則為false
。
_.isWeakMap(new WeakMap);// => true _.isWeakMap(new Map);// => false
檢查value
是否被分類為WeakSet
對象。
4.3.0
value
(*):要檢查的值。
(boolean):返回true
如果value
是弱集,否則為false
。
_.isWeakSet(new WeakSet);// => true _.isWeakSet(new Set);// => false
檢查是否value
小于other
。
3.9.0
value
(*):要比較的值。
other
(*):要比較的另一個值。
(boolean):返回true如果value
小于other
否則返回false
。
_.lt(1, 3);// => true _.lt(3, 3);// => false _.lt(3, 1);// => false
檢查是否value
小于或等于other
。
3.9.0
value
(*):要比較的值。
other
(*):要比較的另一個值。
(boolean):返回true
如果value
小于或等于other
否則為false
。
_.lte(1, 3);// => true _.lte(3, 3);// => true _.lte(3, 1);// => false
將value
轉(zhuǎn)換為數(shù)組。
0.1.0
value
(*):要轉(zhuǎn)換的值。
(Array):返回轉(zhuǎn)換后的數(shù)組。
_.toArray({ 'a': 1, 'b': 2 });// => [1, 2] _.toArray('abc');// => ['a', 'b', 'c'] _.toArray(1);// => [] _.toArray(null);// => []
轉(zhuǎn)換value
為有限數(shù)字。
4.12.0
value
(*):要轉(zhuǎn)換的值。
(number):返回轉(zhuǎn)換后的數(shù)字。
_.toFinite(3.2);// => 3.2 _.toFinite(Number.MIN_VALUE);// => 5e-324 _.toFinite(Infinity);// => 1.7976931348623157e+308 _.toFinite('3.2');// => 3.2
轉(zhuǎn)換value
為整數(shù)。
注意:這個方法松散地基于ToInteger
。
4.0.0
value
(*):要轉(zhuǎn)換的值。
(number):返回轉(zhuǎn)換后的整數(shù)。
_.toInteger(3.2);// => 3 _.toInteger(Number.MIN_VALUE);// => 0 _.toInteger(Infinity);// => 1.7976931348623157e+308 _.toInteger('3.2');// => 3
轉(zhuǎn)換value
為適合用作類似數(shù)組的對象的長度的整數(shù)。
注意: 此方法基于ToLength
。
4.0.0
value
(*):要轉(zhuǎn)換的值。
(number):返回轉(zhuǎn)換后的整數(shù)。
_.toLength(3.2);// => 3 _.toLength(Number.MIN_VALUE);// => 0 _.toLength(Infinity);// => 4294967295 _.toLength('3.2');// => 3
轉(zhuǎn)換value
為數(shù)字。
4.0.0
value
(*):要處理的值。
(number):返回數(shù)值。
_.toNumber(3.2);// => 3.2 _.toNumber(Number.MIN_VALUE);// => 5e-324 _.toNumber(Infinity);// => Infinity _.toNumber('3.2');// => 3.2
將value
簡單展開為繼承可枚舉字符串鍵屬性,以value
為自己的屬性。
3.0.0
value
(*):要轉(zhuǎn)換的值。
(Object):返回轉(zhuǎn)換后的普通對象。
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 }
轉(zhuǎn)換value
為安全整數(shù)。一個安全的整數(shù)可以被正確比較和表示。
4.0.0
value
(*):要轉(zhuǎn)換的值。
(number):返回轉(zhuǎn)換后的整數(shù)。
_.toSafeInteger(3.2);// => 3 _.toSafeInteger(Number.MIN_VALUE);// => 0 _.toSafeInteger(Infinity);// => 9007199254740991 _.toSafeInteger('3.2');// => 3
轉(zhuǎn)換value
為字符串。返回空字符串null
和undefined
值。-0
為保存的標(biāo)志。
4.0.0
value
(*):要轉(zhuǎn)換的值。
(string):返回轉(zhuǎn)換后的字符串。
_.toString(null);// => '' _.toString(-0);// => '-0' _.toString([1, 2, 3]);// => '1,2,3'