语言 Lang Methods

Lodash v4 语言的使用方法

_.castArray

如果不是一个,则将 value 转换为数组。

引入版本 4.4.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(Array): 返回强制转换数组。

示例

js
_.castArray(1)
_.castArray({ a: 1 })
_.castArray('abc')
_.castArray(null)
_.castArray(undefined)
_.castArray()
const array = [1, 2, 3]
console.log(_.castArray(array) === array)

_.clone

创建 value 的浅层克隆。

注意: 此方法大致基于 结构化克隆算法,支持克隆数组、数组缓冲区、布尔值、日期对象、地图、数字、Object 对象 、正则表达式、集合、字符串、符号和类型化数组。 arguments 对象自身的可枚举属性被克隆为普通对象。 对于无法克隆的值(例如错误对象、函数、DOM 节点和 WeakMaps)返回一个空对象。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要克隆的值。

返回

(*): 返回克隆的值。

示例

js
const objects = [{ a: 1 }, { b: 2 }]
const shallow = _.clone(objects)
console.log(shallow[0] === objects[0])

_.cloneDeep

此方法类似于 _.clone,只是它递归地克隆 value

引入版本 1.0.0

source / npm package

参数 (value)

  1. value (*): 递归克隆的值。

返回

(*): 返回深度克隆值。

示例

js
const objects = [{ a: 1 }, { b: 2 }]
const deep = _.cloneDeep(objects)
console.log(deep[0] === objects[0])

_.cloneDeepWith

此方法类似于 _.cloneWith,只是它递归地克隆 value

引入版本 4.0.0

source / npm package

参数 (value, [customizer])

  1. value (*): 递归克隆的值。
  2. [customizer] (Function): 自定义克隆的功能。

返回

(*): 返回深度克隆值。

示例

js
function customizer(value) {
  if (_.isElement(value))
    return value.cloneNode(true)
}
const el = _.cloneDeepWith(document.body, customizer)
console.log(el === document.body)
console.log(el.nodeName)
console.log(el.childNodes.length)

_.cloneWith

此方法类似于 _.clone,只是它接受调用以生成克隆值的 customizer。 如果 customizer 返回 undefined,则克隆由方法处理。 最多可以使用四个参数调用“customizer”; (值[,索引|键,对象,堆栈])

引入版本 4.0.0

source / npm package

参数 (value, [customizer])

  1. value (*): 要克隆的值。
  2. [customizer] (Function): 自定义克隆的功能。

返回

(*): 返回克隆的值。

示例

js
function customizer(value) {
  if (_.isElement(value))
    return value.cloneNode(false)
}
const el = _.cloneWith(document.body, customizer)
console.log(el === document.body)
console.log(el.nodeName)
console.log(el.childNodes.length)

_.conformsTo

通过调用 source 的谓词属性和 object 的相应属性值来检查 object 是否符合 source

注意:source 部分应用时,此方法等效于 _.conforms

引入版本 4.14.0

source / npm package

参数 (object, source)

  1. object (Object): 要检查的对象。
  2. source (Object): 要符合的属性谓词的对象。

返回

(boolean): 如果 object 符合,则返回 true,否则返回 false

示例

js
const object = { a: 1, b: 2 }
_.conformsTo(object, { b(n) {
  return n > 1
} })
_.conformsTo(object, { b(n) {
  return n > 2
} })

_.eq

在两个值之间执行 SameValueZero 比较以确定它们是否相等。

引入版本 4.0.0

source / npm package

参数 (value, other)

  1. value (*): 要比较的值。
  2. other (*): 要比较的另一个值。

返回

(boolean): 如果值相等,则返回 true,否则返回 false

示例

js
const object = { a: 1 }
const other = { a: 1 }
_.eq(object, object)
_.eq(object, other)
_.eq('a', 'a')
_.eq('a', Object('a'))
_.eq(Number.NaN, Number.NaN)

_.gt

检查 value 是否大于 other

引入版本 3.9.0

source / npm package

参数 (value, other)

  1. value (*): 要比较的值。
  2. other (*): 要比较的另一个值。

返回

(boolean): 如果 value 大于 other,则返回 true,否则返回 false

示例

js
_.gt(3, 1)
_.gt(3, 3)
_.gt(1, 3)

_.gte

检查 value 是否大于或等于 other

引入版本 3.9.0

source / npm package

参数 (value, other)

  1. value (*): 要比较的值。
  2. other (*): 要比较的另一个值。

返回

(boolean): 如果 value 大于或等于 other,则返回 true,否则返回 false

示例

js
_.gte(3, 1)
_.gte(3, 3)
_.gte(1, 3)

_.isArguments

检查 value 是否可能是 arguments 对象。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 valuearguments 对象,则返回 true,否则返回 false

示例

js
_.isArguments(function () {
  // eslint-disable-next-line prefer-rest-params
  return arguments
}())
_.isArguments([1, 2, 3])

_.isArray

检查 value 是否被归类为 Array 对象。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是一个数组,则返回 true,否则返回 false

示例

js
_.isArray([1, 2, 3])
_.isArray(document.body.children)
_.isArray('abc')
_.isArray(_.noop)

_.isArrayBuffer

检查 value 是否被归类为 ArrayBuffer 对象。

引入版本 4.3.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是数组缓冲区,则返回 true,否则返回 false

示例

js
_.isArrayBuffer(new ArrayBuffer(2))
_.isArrayBuffer(Array.from({ length: 2 }))

_.isArrayLike

检查 value 是否类似于数组。 如果一个值不是函数并且具有一个大于或等于0且小于或等于Number.MAX_SAFE_INTEGER的整数,则该值被视为类数组。

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 类似于数组,则返回 true,否则返回 false

示例

js
_.isArrayLike([1, 2, 3])
_.isArrayLike(document.body.children)
_.isArrayLike('abc')
_.isArrayLike(_.noop)

_.isArrayLikeObject

isarraylikeobject)

此方法类似于 _.isArrayLike,除了它还检查 value 是否为对象。

引入版本 4.0.0

source / [npm package](https://www.npmjs.com/package/lodash.

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是类似数组的对象,则返回 true,否则返回 false

示例

js
_.isArrayLikeObject([1, 2, 3])
_.isArrayLikeObject(document.body.children)
_.isArrayLikeObject('abc')
_.isArrayLikeObject(_.noop)

_.isBoolean

检查 value 是否被归类为布尔基元或对象。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是布尔值,则返回 true,否则返回 false

示例

js
_.isBoolean(false)
_.isBoolean(null)

_.isBuffer

检查 value 是否是缓冲区。

引入版本 4.3.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是缓冲区,则返回 true,否则返回 false

示例

js
// eslint-disable-next-line node/prefer-global/buffer
_.isBuffer(Buffer.alloc(2))
_.isBuffer(new Uint8Array(2))

_.isDate

检查 value 是否被归类为 Date 对象。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是日期对象,则返回 true,否则返回 false

示例

js
_.isDate(new Date())
_.isDate('Mon April 23 2012')

_.isElement

检查 value 是否可能是 DOM 元素。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是 DOM 元素,则返回 true,否则返回 false

示例

js
_.isElement(document.body)
_.isElement('<body>')

_.isEmpty

检查 value 是否为空对象、集合、映射或集合。

如果对象没有自己的可枚举字符串键属性,则对象被认为是空的。

类似数组的值,例如 arguments 对象、数组、缓冲区、字符串或类似 jQuery 的集合,如果它们的 length0,则被认为是空的。 同样,如果地图和集合的“大小”为“0”,则它们被视为空。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 为空,则返回 true,否则返回 false

示例

js
_.isEmpty(null)
_.isEmpty(true)
_.isEmpty(1)
_.isEmpty([1, 2, 3])
_.isEmpty({ a: 1 })

_.isEqual

在两个值之间执行深度比较以确定它们是否相等。

注意: 此方法支持比较数组、数组缓冲区、布尔值、日期对象、错误对象、地图、数字、Object 对象、正则表达式、集合、字符串、符号和类型数组。 Object 对象通过它们自己的而不是继承的、可枚举的属性进行比较。 函数和 DOM 节点通过严格相等来比较,即===

引入版本 0.1.0

source / npm package

参数 (value, other)

  1. value (*): 要比较的值。
  2. other (*): 要比较的另一个值。

返回

(boolean): 如果值相等,则返回 true,否则返回 false

示例

js
const object = { a: 1 }
const other = { a: 1 }
_.isEqual(object, other)
object === other

_.isEqualWith

此方法与 _.isEqual 类似,只是它接受调用以比较值的 customizer。 如果 customizer 返回 undefined,则比较由方法处理。 customizer 最多可以使用六个参数调用:(objValue,othValue [, index|key, object, other, stack])

引入版本 4.0.0

source / npm package

参数 (value, other, [customizer])

  1. value (*): 要比较的值。
  2. other (*): 要比较的另一个值。
  3. [customizer] (Function): 自定义比较的功能。

返回

(boolean): 如果值相等,则返回 true,否则返回 false

示例

js
function isGreeting(value) {
  return /^h(?:i|ello)$/.test(value)
}
function customizer(objValue, othValue) {
  if (isGreeting(objValue) && isGreeting(othValue))
    return true
}
const array = ['hello', 'goodbye']
const other = ['hi', 'goodbye']
_.isEqualWith(array, other, customizer)

_.isError

Checks if value is an Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, or URIError object.

引入版本 3.0.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是错误对象,则返回 true,否则返回 false

示例

js
_.isError(new Error('error'))
_.isError(Error)

_.isFinite

检查 value 是否是一个有限的原始数字。

注意: 此方法基于 Number.isFinite

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是有限数,则返回 true,否则返回 false

示例

js
_.isFinite(3)
_.isFinite(Number.MIN_VALUE)
_.isFinite(Number.POSITIVE_INFINITY)
_.isFinite('3')

_.isFunction

检查 value 是否被归类为 Function 对象。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是一个函数,则返回 true,否则返回 false

示例

js
_.isFunction(_)
_.isFunction(/abc/)

_.isInteger

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是整数,则返回 true,否则返回 false

示例

js
_.isInteger(3)
_.isInteger(Number.MIN_VALUE)
_.isInteger(Number.POSITIVE_INFINITY)
_.isInteger('3')

_.isLength

检查 value 是否是有效的类似数组的长度。

注意: 此方法大致基于 ToLength

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是有效长度,则返回 true,否则返回 false

示例

js
_.isLength(3)
_.isLength(Number.MIN_VALUE)
_.isLength(Number.POSITIVE_INFINITY)
_.isLength('3')

_.isMap

检查 value 是否被归类为 Map 对象。

引入版本 4.3.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是地图,则返回 true,否则返回 false

示例

js
_.isMap(new Map())
_.isMap(new WeakMap())

_.isMatch

objectsource 之间执行部分深度比较,以确定 object 是否包含等效的属性值。

注意:source 部分应用时,此方法等效于 _.matches

部分比较将分别将空数组和空对象source值与任何数组或对象值进行匹配。 有关支持的值比较的列表,请参阅 _.isEqual

引入版本 3.0.0

source / npm package

参数 (object, source)

  1. object (Object): 要检查的对象。
  2. source (Object): 要匹配的属性值的对象。

返回

(boolean): 如果 object 匹配,则返回 true,否则返回 false

示例

js
const object = { a: 1, b: 2 }
_.isMatch(object, { b: 2 })
_.isMatch(object, { b: 1 })

_.isMatchWith

此方法类似于 _.isMatch,只是它接受调用以比较值的 customizer。如果 customizer 返回 undefined,则比较由方法处理。 customizer 使用五个参数调用:(objValue, srcValue,index|key, object, source)

引入版本 4.0.0

source / npm package

参数 (object, source, [customizer])

  1. object (Object): 要检查的对象。
  2. source (Object): 要匹配的属性值的对象。
  3. [customizer] (Function): 自定义比较的功能。

返回

(boolean): 如果 object 匹配,则返回 true,否则返回 false

示例

js
function isGreeting(value) {
  return /^h(?:i|ello)$/.test(value)
}
function customizer(objValue, srcValue) {
  if (isGreeting(objValue) && isGreeting(srcValue))
    return true
}
const object = { greeting: 'hello' }
const source = { greeting: 'hi' }
_.isMatchWith(object, source, customizer)

_.isNaN

检查 value 是否为 NaN

**注意:**此方法基于Number.isNaN,与全局isNaN,它为 undefined 和其他非数字值返回 true

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 valueNaN,则返回 true,否则返回 false

示例

js
_.isNaN(Number.NaN)
// eslint-disable-next-line no-new-wrappers
_.isNaN(new Number(Number.NaN))
Number.isNaN(undefined)
_.isNaN(undefined)

_.isNative

检查 value 是否是一个原始的原生函数。

注意: 这种方法在有 core-js 包的情况下无法可靠地检测原生函数,因为 core-js 绕过了这种检测。尽管有多次请求,core-js 维护人员明确表示:任何修复检测的试验都将受到影响。作为一个结果,我们别无选择,只能抛出错误。不幸的是,这也会影响依赖于 core-js 的包,例如 babel-polyfill

引入版本 3.0.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是本机函数,则返回 true,否则返回 false

示例

js
_.isNative(Array.prototype.push)
_.isNative(_)

_.isNil

Checks if value is null or undefined.

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 为空,则返回 true,否则返回 false

示例

js
_.isNil(null)
_.isNil(void 0)
_.isNil(Number.NaN)

_.isNull

Checks if value is null.

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 valuenull,则返回 true,否则返回 false

示例

js
_.isNull(null)
_.isNull(void 0)

_.isNumber

检查 value 是否被归类为 Number 原语或对象。

注意: 要排除归类为数字的 Infinity-InfinityNaN,请使用 _.isFinite 方法。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是一个数字,则返回 true,否则返回 false

示例

js
_.isNumber(3)
_.isNumber(Number.MIN_VALUE)
_.isNumber(Number.POSITIVE_INFINITY)
_.isNumber('3')

_.isObject

检查 value 是否是 Object语言类型(例如数组、函数、对象、正则表达式、new Number(0)new String(''))

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是一个对象,则返回 true,否则返回 false

示例

js
_.isObject({})
_.isObject([1, 2, 3])
_.isObject(_.noop)
_.isObject(null)

_.isObjectLike

检查 value 是否类似于对象。 如果一个值不是“null”并且具有“object”的“typeof”结果,则它是类对象的。

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是类似对象的,则返回 true,否则返回 false

示例

js
_.isObjectLike({})
_.isObjectLike([1, 2, 3])
_.isObjectLike(_.noop)
_.isObjectLike(null)

_.isPlainObject

检查 value 是否是一个普通对象,即由 Object 构造函数创建的对象或具有 [[Prototype]]null 的对象。

引入版本 0.8.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是普通对象,则返回 true,否则返回 false

示例

js
function Foo() {
  this.a = 1
}
_.isPlainObject(new Foo())
_.isPlainObject([1, 2, 3])
_.isPlainObject({ x: 0, y: 0 })
_.isPlainObject(Object.create(null))

_.isRegExp

检查 value 是否被归类为 RegExp 对象。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是一个正则表达式,则返回 true,否则返回 false

示例

js
_.isRegExp(/abc/)
_.isRegExp('/abc/')

_.isSafeInteger

检查 value 是否是安全整数。 如果整数是 IEEE-754 双精度数,而不是舍入不安全整数的结果,则该整数是安全的。

注意: 此方法基于 Number.isSafeInteger

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是安全整数,则返回 true,否则返回 false

示例

js
_.isSafeInteger(3)
_.isSafeInteger(Number.MIN_VALUE)
_.isSafeInteger(Number.POSITIVE_INFINITY)
_.isSafeInteger('3')

_.isSet

检查 value 是否被归类为 Set 对象。

引入版本 4.3.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是一个集合,则返回 true,否则返回 false

示例

js
_.isSet(new Set())
_.isSet(new WeakSet())

_.isString

检查 value 是否被归类为 String 原语或对象。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是字符串,则返回 true,否则返回 false

示例

js
_.isString('abc')
_.isString(1)

_.isSymbol

检查 value 是否被归类为 Symbol 原语或对象。

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是一个符号,则返回 true,否则返回 false

示例

js
_.isSymbol(Symbol.iterator)
_.isSymbol('abc')

_.isTypedArray

检查 value 是否被归类为类型化数组。

引入版本 3.0.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是类型化数组,则返回 true,否则返回 false

示例

js
_.isTypedArray(new Uint8Array())
_.isTypedArray([])

_.isUndefined

检查 value 是否为 undefined

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 valueundefined,则返回 true,否则返回 false

示例

js
_.isUndefined(void 0)
_.isUndefined(null)

_.isWeakMap

检查 value 是否被归类为 WeakMap 对象。

引入版本 4.3.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是弱映射,则返回 true,否则返回 false

示例

js
_.isWeakMap(new WeakMap())
_.isWeakMap(new Map())

_.isWeakSet

检查 value 是否被归类为 WeakSet 对象。

引入版本 4.3.0

source / npm package

参数 (value)

  1. value (*): 要检查的值。

返回

(boolean): 如果 value 是弱集,则返回 true,否则返回 false

示例

js
_.isWeakSet(new WeakSet())
_.isWeakSet(new Set())

_.lt

Checks if value is less than other.

引入版本 3.9.0

source / npm package

参数 (value, other)

  1. value (*): 要比较的值。
  2. other (*): 要比较的另一个值。

返回

(boolean): 如果 value 小于 other,则返回 true,否则返回 false

示例

js
_.lt(1, 3)
_.lt(3, 3)
_.lt(3, 1)

_.lte

检查 value 是否小于或等于 other

引入版本 3.9.0

source / npm package

参数 (value, other)

  1. value (*): 要比较的值。
  2. other (*): 要比较的另一个值。

返回

(boolean): 如果 value 小于或等于 other,则返回 true,否则返回 false

示例

js
_.lte(1, 3)
_.lte(3, 3)
_.lte(3, 1)

_.toArray

value 转换为数组。

引入版本 0.1.0

source / npm package

参数 (value)

  1. value (*): 要转换的值。

返回

(Array): 返回转换后的数组。

示例

js
_.toArray({ a: 1, b: 2 })
_.toArray('abc')
_.toArray(1)
_.toArray(null)

_.toFinite

value 转换为有限数。

引入版本 4.12.0

source / npm package

参数 (value)

  1. value (*): 要转换的值。

返回

(number): 返回转换后的数字。

示例

js
_.toFinite(3.2)
_.toFinite(Number.MIN_VALUE)
_.toFinite(Number.POSITIVE_INFINITY)
_.toFinite('3.2')

_.toInteger

value 转换为整数。

注意: 此方法大致基于 ToInteger

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要转换的值。

返回

(number): 返回转换后的整数。

示例

js
_.toInteger(3.2)
_.toInteger(Number.MIN_VALUE)
_.toInteger(Number.POSITIVE_INFINITY)
_.toInteger('3.2')

_.toLength

value 转换为适合用作类数组对象长度的整数。

注意: 此方法基于 ToLength

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要转换的值。

返回

(number): 返回转换后的整数。

示例

js
_.toLength(3.2)
_.toLength(Number.MIN_VALUE)
_.toLength(Number.POSITIVE_INFINITY)
_.toLength('3.2')

_.toNumber

value 转换为数字。

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要处理的值。

返回

(number): 返回数字。

示例

js
_.toNumber(3.2)
_.toNumber(Number.MIN_VALUE)
_.toNumber(Number.POSITIVE_INFINITY)
_.toNumber('3.2')

_.toPlainObject

将“value”转换为普通对象,将“value”的继承的可枚举字符串键属性展平为普通对象的自己的属性。

引入版本 3.0.0

source / npm package

参数 (value)

  1. value (*): 要转换的值。

返回

(Object): 返回转换后的普通对象。

示例

js
function Foo() {
  this.b = 2
}
Foo.prototype.c = 3
_.assign({ a: 1 }, new Foo())
_.assign({ a: 1 }, _.toPlainObject(new Foo()))

_.toSafeInteger

value 转换为安全整数。 可以正确比较和表示安全整数。

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要转换的值。

返回

(number): 返回转换后的整数。

示例

js
_.toSafeInteger(3.2)
_.toSafeInteger(Number.MIN_VALUE)
_.toSafeInteger(Number.POSITIVE_INFINITY)
_.toSafeInteger('3.2')

_.toString

value 转换为字符串。 nullundefined 值返回一个空字符串。 -0 的符号被保留。

引入版本 4.0.0

source / npm package

参数 (value)

  1. value (*): 要转换的值。

返回

(string): 返回转换后的字符串。

示例

js
_.toString(null)
_.toString(-0)
_.toString([1, 2, 3])