Translated by PeckZeg
Original Docs: Lodash v3.10.1 Docshtml
_.clone(value, [isDeep], [customizer], [thisArg])
建立一個 value
的克隆。若是 isDeep
爲 true
,則嵌套對象也會被克隆,不然,其將被賦值爲引用對象。若是指定了 customizer
,那麼其將被用來調用提供克隆的值。若是 customizer
返回 undefined
,克隆過程將被方法自己代替。customizer
綁定 thisArg
,並在執行時最多傳入三個參數:value
, [index|key]
, [object]
。html5
注意:該方法基於 結構化克隆算法。arguments
對象的可枚舉屬性和構造函數建立的對象不一樣於被源生 Object
克隆出的 Object
。不可克隆的值如函數、DOM 結點、映射、結合 和弱映射將會返回空對象。node
參數git
value
(*) : 待克隆的值github
[isDeep]
(boolean) : 指定是否深度克隆正則表達式
[customizer]
(Function) : 克隆值的定製器函數算法
[thisArg]
(*) : customizer
綁定的 this
數組
返回函數
(*) : 返回克隆的值this
示例
var users = [ { 'user': 'barney' }, { 'user': 'fred' } ]; var shallow = _.clone(users); shallow[0] === users[0]; // → true var 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 // → false el.nodeName // → BODY el.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 // → false el.nodeName // → BODY el.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 callback var 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)); // → true isNaN(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 }