Lodash 中文文檔 (v3.10.1) - 「Lang」 方法

Lodash 中文文檔 (v3.10.1) - 「Lang」 方法

Translated by PeckZeg
Original Docs: Lodash v3.10.1 Docshtml

「Lang」 方法

_.clone(value, [isDeep], [customizer], [thisArg])

建立一個 value 的克隆。若是 isDeeptrue,則嵌套對象也會被克隆,不然,其將被賦值爲引用對象。若是指定了 customizer,那麼其將被用來調用提供克隆的值。若是 customizer 返回 undefined,克隆過程將被方法自己代替。customizer 綁定 thisArg,並在執行時最多傳入三個參數:value, [index|key], [object]html5

注意:該方法基於 結構化克隆算法arguments 對象的可枚舉屬性和構造函數建立的對象不一樣於被源生 Object 克隆出的 Object。不可克隆的值如函數、DOM 結點、映射、結合 和弱映射將會返回空對象。node

參數git

  1. value (*) : 待克隆的值github

  2. [isDeep] (boolean) : 指定是否深度克隆正則表達式

  3. [customizer] (Function) : 克隆值的定製器函數算法

  4. [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 結點、映射、結合 和弱映射將會返回空對象。

參數

  1. value (*) : 待深度克隆的值

  2. [customizer] (Function) : 克隆值的定製器函數

  3. [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

參數

  1. value (*) : 待比較的值

  2. other (*) : 另外一個待比較的值

返回

(boolean) : value 大於 other 時返回 true,不然返回 false

示例

_.gt(3, 1);
// → true

_.gt(3, 3);
// → false

_.gt(1, 3);
// → false

_.gte(value, other)

檢查 value 是否大於等於 other

參數

  1. value (*) : 待比較的值

  2. other (*) : 另外一個待比較的值

返回

(boolean) : value 大於等於 other 時返回 true,不然返回 false

示例

_.gte(3, 1);
// → true

_.gte(3, 3);
// → true

_.gte(1, 3);
// → false

_.isArguments(value)

檢查 value 是否被列爲參數。

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 被列爲參數則返回 true,不然返回 false

示例

_.isArguments(function() { return arguments; }());
// → true

_.isArguments([1, 2, 3]);
// → false

_.isArray(value)

檢查 value 是否被列爲數組對象。

參數

  1. value (*) : 待檢查的值

返回
(boolean) : 若是 value 爲正確的分類返回 true,不然則返回 false

示例

_.isArray([1, 2, 3]);
// → true

_.isArray(function() { return arguments; }());
// → false

_.isBoolean(value)

檢查 value 是否被列爲原始布爾值或布爾值對象。

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 被正確歸類時返回 true,不然返回 false

示例

_.isBoolean(false);
// → true

_.isBoolean(null);
// → false

_.isDate(value)

檢查 value 是否被列爲 Date 對象。

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 被正確歸類時返回 true,不然返回 false

示例

_.isDate(new Date);
// → true

_.isDate('Mon April 23 2012');
// → false

_.isElement(value)

檢查 value 是否爲 DOM 元素。

參數

  1. value (*) : 待檢查的值

返回
(boolean) : value 爲 DOM 元素時返回 true,不然返回 false

示例

_.isElement(document.body);
// → true

_.isElement('<body>');
// → false

_.isEmpty(value)

檢查 value 是否爲空。除了 arguments 對象、數組、字符串或 類 jQuery 集合的 length 值大於 0 或者對象擁有可枚舉屬性時,其餘狀況會把值考慮爲空。

參數

  1. 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

參數

  1. value (*) : 待比較的值

  2. other (*) : 另外一個待比較的值

  3. [customizer] (Function) : 定製比較值的函數

  4. [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)

檢查值是否爲 ErrorEvalErrorRangeErrorReferenceErrorSyntaxErrorTypeErrorURIError 對象。

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 爲錯誤對象時返回 true,不然返回 false

示例

_.isError(new Error);
// → true

_.isError(Error);
// → false

_.isFinite(value)

檢查 value 是否爲原始無限數值。

注意:該方法基於 Number.isFinite

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 爲無限數值返回 true,不然返回 false

示例

_.isFinite(10);
// → true

_.isFinite('10');
// → false

_.isFinite(true);
// → false

_.isFinite(Object(10));
// → false

_.isFinite(Infinity);
// → false

_.isFunction(value)

檢查 value 是否被列爲函數對象。

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 被正確歸類時返回 true,不然返回 false

示例

_.isFunction(_);
// → true

_.isFunction(/abc/);
// → false

_.isMatch(object, source, [customizer], [thisArg])

objectsource 之間執行深度比較,以決定 object 是否包含相等的屬性值。若是提供了 customizer,其將被用來執行比較兩個值。若是 customizer 返回 undefined,那麼比較過程被方法自己代替。customizer 綁定 thisArg 並在執行時最多傳入三個值:value, other, index|key

注意:該方法支持比較數組的屬性、布爾值、Date 對象,數值、Object 對象,正則表達式和數值。不支持比較函數和 DOM 結點。提供一個定製器函數用來擴展比較其餘值的支持。

參數

  1. object (Object) : 待檢查的值

  2. source (Object) : 待匹配的屬性值的對象

  3. [customizer] (Function) : 定製比較值的函數

  4. [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

參數

  1. value (*) : 待檢查的值

返回

(boolean) : 若是 valueNaN 返回 true,不然返回 false

示例

_.isNaN(NaN);
// → true

_.isNaN(new Number(NaN));
// → true

isNaN(undefined);
// → true

_.isNaN(undefined);
// → false

_.isNative(value)

檢查 value 是否爲原生函數。

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 爲原生函數時返回 true,不然返回 false

示例

_.isNative(Array.prototype.push);
// → true

_.isNative(_);
// → false

_.isNull(value)

檢查 value 是否爲 null

參數

  1. value (*) : 待檢查的值

返回

(boolean) : valuenull 時返回 true,不然返回 false

示例

_.isNull(null);
// → true

_.isNull(void 0);
// → false

_.isNumber(value)

檢查 value 是否被指定爲 Number 字面量或對象。

注意:若是要排除被指定爲數值的 Infinity-InfinityNaN,使用 _.isFinite 方法。

參數

  1. 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('')

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 爲對象時返回 true,不然返回 false

示例

_.isObject({});
// → true

_.isObject([1, 2, 3]);
// → true

_.isObject(1);
// → false

_.isPlainObject(value)

檢查 value 是否爲一個純粹的對象,純粹的對象就是使用 Object 構造器建立的對象或一個 [[Prototype]]null 的對象。

注意:該方法假定由 Object 構造器建立的對象沒有內置可枚舉屬性。

參數

  1. 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 對象。

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 被正確歸類時返回 true,不然返回 false

示例

_.isRegExp(/abc/);
// → true

_.isRegExp('/abc/');
// → false

_.isString(value)

檢查 value 是否被歸類爲 String 字面量或對象。

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 被正確歸類時返回 true,不然返回 false

示例

_.isString('abc');
// → true

_.isString(1);
// → false

_.isTypedArray(value)

檢查 value 是否被歸類爲類型數組。

參數

  1. value (*) : 待檢查的值

返回

(boolean) : value 被正確歸類時返回 true,不然返回 false

示例

_.isTypedArray(new Uint8Array);
// → true

_.isTypedArray([]);
// → false

_.isUndefined(value)

檢查 value 是否爲 undefined

參數

  1. value (*) : 待檢查的值

返回

(boolean) : valueundefined 時返回 true,不然返回 false

示例

_.isUndefined(void 0);
// → true

_.isUndefined(null);
// → false

_.lt(value, other)

檢查 value 是否小於 other

參數

  1. value (*) : 待比較的值

  2. other (*) : 另外一個待比較的值

返回

(boolean) : valueother 小時返回 true,不然返回 false

示例

_.lt(1, 3);
// → true

_.lt(3, 3);
// → false

_.lt(3, 1);
// → false

_.lte(value, other)

檢查 value 是否小於等於 other

參數

  1. value (*) : 待比較的值

  2. other (*) : 另外一個待比較的值

返回

(boolean) : value 小於或等於other 時返回 true,不然返回 false

示例

_.lte(1, 3);
// → true

_.lte(3, 3);
// → true

_.lte(3, 1);
// → false

_.toArray(value)

value 轉換爲數組。

參數

  1. value _(*)_: 待轉換的值

返回

(Array) : 返回轉換後的數組

示例

(function() {
  return _.toArray(arguments).slice(1);
}(1, 2, 3));
// → [2, 3]

_.toPlainObject(value)

轉換 value 爲純粹的對象,該方法會將 value 的內置可枚舉對象轉換爲純粹的對象的自有屬性。

參數

  1. 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 }
相關文章
相關標籤/搜索