_.castArray
如果不是一个,则将 value
转换为数组。
引入版本 4.4.0
参数 (value)
value
(*): 要检查的值。
返回
(Array): 返回强制转换数组。
示例
_.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
参数 (value)
value
(*): 要克隆的值。
返回
(*): 返回克隆的值。
示例
const objects = [{ a: 1 }, { b: 2 }]
const shallow = _.clone(objects)
console.log(shallow[0] === objects[0])
_.cloneDeep
此方法类似于 _.clone
,只是它递归地克隆 value
。
引入版本 1.0.0
参数 (value)
value
(*): 递归克隆的值。
返回
(*): 返回深度克隆值。
示例
const objects = [{ a: 1 }, { b: 2 }]
const deep = _.cloneDeep(objects)
console.log(deep[0] === objects[0])
_.cloneDeepWith
此方法类似于 _.cloneWith
,只是它递归地克隆 value
。
引入版本 4.0.0
参数 (value, [customizer])
value
(*): 递归克隆的值。[customizer]
(Function): 自定义克隆的功能。
返回
(*): 返回深度克隆值。
示例
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
参数 (value, [customizer])
value
(*): 要克隆的值。[customizer]
(Function): 自定义克隆的功能。
返回
(*): 返回克隆的值。
示例
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
参数 (object, source)
object
(Object): 要检查的对象。source
(Object): 要符合的属性谓词的对象。
返回
(boolean): 如果 object
符合,则返回 true
,否则返回 false
。
示例
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
参数 (value, other)
value
(*): 要比较的值。other
(*): 要比较的另一个值。
返回
(boolean): 如果值相等,则返回 true
,否则返回 false
。
示例
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
参数 (value, other)
value
(*): 要比较的值。other
(*): 要比较的另一个值。
返回
(boolean): 如果 value
大于 other
,则返回 true
,否则返回 false
。
示例
_.gt(3, 1)
_.gt(3, 3)
_.gt(1, 3)
_.gte
检查 value
是否大于或等于 other
。
引入版本 3.9.0
参数 (value, other)
value
(*): 要比较的值。other
(*): 要比较的另一个值。
返回
(boolean): 如果 value
大于或等于 other
,则返回 true
,否则返回 false
。
示例
_.gte(3, 1)
_.gte(3, 3)
_.gte(1, 3)
_.isArguments
检查 value
是否可能是 arguments
对象。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是 arguments
对象,则返回 true
,否则返回 false
。
示例
_.isArguments(function () {
// eslint-disable-next-line prefer-rest-params
return arguments
}())
_.isArguments([1, 2, 3])
_.isArray
检查 value
是否被归类为 Array
对象。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是一个数组,则返回 true
,否则返回 false
。
示例
_.isArray([1, 2, 3])
_.isArray(document.body.children)
_.isArray('abc')
_.isArray(_.noop)
_.isArrayBuffer
检查 value
是否被归类为 ArrayBuffer
对象。
引入版本 4.3.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是数组缓冲区,则返回 true
,否则返回 false
。
示例
_.isArrayBuffer(new ArrayBuffer(2))
_.isArrayBuffer(Array.from({ length: 2 }))
_.isArrayLike
检查 value
是否类似于数组。 如果一个值不是函数并且具有一个大于或等于0
且小于或等于Number.MAX_SAFE_INTEGER
的整数,则该值被视为类数组。
引入版本 4.0.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
类似于数组,则返回 true
,否则返回 false
。
示例
_.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)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是类似数组的对象,则返回 true
,否则返回 false
。
示例
_.isArrayLikeObject([1, 2, 3])
_.isArrayLikeObject(document.body.children)
_.isArrayLikeObject('abc')
_.isArrayLikeObject(_.noop)
_.isBoolean
检查 value
是否被归类为布尔基元或对象。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是布尔值,则返回 true
,否则返回 false
。
示例
_.isBoolean(false)
_.isBoolean(null)
_.isBuffer
检查 value
是否是缓冲区。
引入版本 4.3.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是缓冲区,则返回 true
,否则返回 false
。
示例
// eslint-disable-next-line node/prefer-global/buffer
_.isBuffer(Buffer.alloc(2))
_.isBuffer(new Uint8Array(2))
_.isDate
检查 value
是否被归类为 Date
对象。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是日期对象,则返回 true
,否则返回 false
。
示例
_.isDate(new Date())
_.isDate('Mon April 23 2012')
_.isElement
检查 value
是否可能是 DOM 元素。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是 DOM 元素,则返回 true
,否则返回 false
。
示例
_.isElement(document.body)
_.isElement('<body>')
_.isEmpty
检查 value
是否为空对象、集合、映射或集合。
如果对象没有自己的可枚举字符串键属性,则对象被认为是空的。
类似数组的值,例如 arguments
对象、数组、缓冲区、字符串或类似 jQuery 的集合,如果它们的 length
为 0
,则被认为是空的。 同样,如果地图和集合的“大小”为“0”,则它们被视为空。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
为空,则返回 true
,否则返回 false
。
示例
_.isEmpty(null)
_.isEmpty(true)
_.isEmpty(1)
_.isEmpty([1, 2, 3])
_.isEmpty({ a: 1 })
_.isEqual
在两个值之间执行深度比较以确定它们是否相等。
注意: 此方法支持比较数组、数组缓冲区、布尔值、日期对象、错误对象、地图、数字、Object
对象、正则表达式、集合、字符串、符号和类型数组。 Object
对象通过它们自己的而不是继承的、可枚举的属性进行比较。 函数和 DOM 节点通过严格相等来比较,即===
。
引入版本 0.1.0
参数 (value, other)
value
(*): 要比较的值。other
(*): 要比较的另一个值。
返回
(boolean): 如果值相等,则返回 true
,否则返回 false
。
示例
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
参数 (value, other, [customizer])
value
(*): 要比较的值。other
(*): 要比较的另一个值。[customizer]
(Function): 自定义比较的功能。
返回
(boolean): 如果值相等,则返回 true
,否则返回 false
。
示例
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
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是错误对象,则返回 true
,否则返回 false
。
示例
_.isError(new Error('error'))
_.isError(Error)
_.isFinite
检查 value
是否是一个有限的原始数字。
注意: 此方法基于 Number.isFinite
。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是有限数,则返回 true
,否则返回 false
。
示例
_.isFinite(3)
_.isFinite(Number.MIN_VALUE)
_.isFinite(Number.POSITIVE_INFINITY)
_.isFinite('3')
_.isFunction
检查 value
是否被归类为 Function
对象。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是一个函数,则返回 true
,否则返回 false
。
示例
_.isFunction(_)
_.isFunction(/abc/)
_.isInteger
引入版本 4.0.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是整数,则返回 true
,否则返回 false
。
示例
_.isInteger(3)
_.isInteger(Number.MIN_VALUE)
_.isInteger(Number.POSITIVE_INFINITY)
_.isInteger('3')
_.isLength
检查 value
是否是有效的类似数组的长度。
注意: 此方法大致基于 ToLength
。
引入版本 4.0.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是有效长度,则返回 true
,否则返回 false
。
示例
_.isLength(3)
_.isLength(Number.MIN_VALUE)
_.isLength(Number.POSITIVE_INFINITY)
_.isLength('3')
_.isMap
检查 value
是否被归类为 Map
对象。
引入版本 4.3.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是地图,则返回 true
,否则返回 false
。
示例
_.isMap(new Map())
_.isMap(new WeakMap())
_.isMatch
在 object
和 source
之间执行部分深度比较,以确定 object
是否包含等效的属性值。
注意: 当 source
部分应用时,此方法等效于 _.matches
。
部分比较将分别将空数组和空对象source
值与任何数组或对象值进行匹配。 有关支持的值比较的列表,请参阅 _.isEqual
。
引入版本 3.0.0
参数 (object, source)
object
(Object): 要检查的对象。source
(Object): 要匹配的属性值的对象。
返回
(boolean): 如果 object
匹配,则返回 true
,否则返回 false
。
示例
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
参数 (object, source, [customizer])
object
(Object): 要检查的对象。source
(Object): 要匹配的属性值的对象。[customizer]
(Function): 自定义比较的功能。
返回
(boolean): 如果 object
匹配,则返回 true
,否则返回 false
。
示例
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
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
为 NaN
,则返回 true
,否则返回 false
。
示例
_.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
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是本机函数,则返回 true
,否则返回 false
。
示例
_.isNative(Array.prototype.push)
_.isNative(_)
_.isNil
Checks if value
is null
or undefined
.
引入版本 4.0.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
为空,则返回 true
,否则返回 false
。
示例
_.isNil(null)
_.isNil(void 0)
_.isNil(Number.NaN)
_.isNull
Checks if value
is null
.
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
为 null
,则返回 true
,否则返回 false
。
示例
_.isNull(null)
_.isNull(void 0)
_.isNumber
检查 value
是否被归类为 Number
原语或对象。
注意: 要排除归类为数字的 Infinity
、-Infinity
和 NaN
,请使用 _.isFinite
方法。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是一个数字,则返回 true
,否则返回 false
。
示例
_.isNumber(3)
_.isNumber(Number.MIN_VALUE)
_.isNumber(Number.POSITIVE_INFINITY)
_.isNumber('3')
_.isObject
检查 value
是否是 Object
的 语言类型。 (例如数组、函数、对象、正则表达式、new Number(0)
和 new String('')
)
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是一个对象,则返回 true
,否则返回 false
。
示例
_.isObject({})
_.isObject([1, 2, 3])
_.isObject(_.noop)
_.isObject(null)
_.isObjectLike
检查 value
是否类似于对象。 如果一个值不是“null”并且具有“object”的“typeof”结果,则它是类对象的。
引入版本 4.0.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是类似对象的,则返回 true
,否则返回 false
。
示例
_.isObjectLike({})
_.isObjectLike([1, 2, 3])
_.isObjectLike(_.noop)
_.isObjectLike(null)
_.isPlainObject
检查 value
是否是一个普通对象,即由 Object
构造函数创建的对象或具有 [[Prototype]]
为 null
的对象。
引入版本 0.8.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是普通对象,则返回 true
,否则返回 false
。
示例
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
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是一个正则表达式,则返回 true
,否则返回 false
。
示例
_.isRegExp(/abc/)
_.isRegExp('/abc/')
_.isSafeInteger
检查 value
是否是安全整数。 如果整数是 IEEE-754 双精度数,而不是舍入不安全整数的结果,则该整数是安全的。
注意: 此方法基于 Number.isSafeInteger
。
引入版本 4.0.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是安全整数,则返回 true
,否则返回 false
。
示例
_.isSafeInteger(3)
_.isSafeInteger(Number.MIN_VALUE)
_.isSafeInteger(Number.POSITIVE_INFINITY)
_.isSafeInteger('3')
_.isSet
检查 value
是否被归类为 Set
对象。
引入版本 4.3.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是一个集合,则返回 true
,否则返回 false
。
示例
_.isSet(new Set())
_.isSet(new WeakSet())
_.isString
检查 value
是否被归类为 String
原语或对象。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是字符串,则返回 true
,否则返回 false
。
示例
_.isString('abc')
_.isString(1)
_.isSymbol
检查 value
是否被归类为 Symbol
原语或对象。
引入版本 4.0.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是一个符号,则返回 true
,否则返回 false
。
示例
_.isSymbol(Symbol.iterator)
_.isSymbol('abc')
_.isTypedArray
检查 value
是否被归类为类型化数组。
引入版本 3.0.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是类型化数组,则返回 true
,否则返回 false
。
示例
_.isTypedArray(new Uint8Array())
_.isTypedArray([])
_.isUndefined
检查 value
是否为 undefined
。
引入版本 0.1.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
为 undefined
,则返回 true
,否则返回 false
。
示例
_.isUndefined(void 0)
_.isUndefined(null)
_.isWeakMap
检查 value
是否被归类为 WeakMap
对象。
引入版本 4.3.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是弱映射,则返回 true
,否则返回 false
。
示例
_.isWeakMap(new WeakMap())
_.isWeakMap(new Map())
_.isWeakSet
检查 value
是否被归类为 WeakSet
对象。
引入版本 4.3.0
参数 (value)
value
(*): 要检查的值。
返回
(boolean): 如果 value
是弱集,则返回 true
,否则返回 false
。
示例
_.isWeakSet(new WeakSet())
_.isWeakSet(new Set())
_.lt
Checks if value
is less than other
.
引入版本 3.9.0
参数 (value, other)
value
(*): 要比较的值。other
(*): 要比较的另一个值。
返回
(boolean): 如果 value
小于 other
,则返回 true
,否则返回 false
。
示例
_.lt(1, 3)
_.lt(3, 3)
_.lt(3, 1)
_.lte
检查 value
是否小于或等于 other
。
引入版本 3.9.0
参数 (value, other)
value
(*): 要比较的值。other
(*): 要比较的另一个值。
返回
(boolean): 如果 value
小于或等于 other
,则返回 true
,否则返回 false
。
示例
_.lte(1, 3)
_.lte(3, 3)
_.lte(3, 1)
_.toArray
将 value
转换为数组。
引入版本 0.1.0
参数 (value)
value
(*): 要转换的值。
返回
(Array): 返回转换后的数组。
示例
_.toArray({ a: 1, b: 2 })
_.toArray('abc')
_.toArray(1)
_.toArray(null)
_.toFinite
将 value
转换为有限数。
引入版本 4.12.0
参数 (value)
value
(*): 要转换的值。
返回
(number): 返回转换后的数字。
示例
_.toFinite(3.2)
_.toFinite(Number.MIN_VALUE)
_.toFinite(Number.POSITIVE_INFINITY)
_.toFinite('3.2')
_.toInteger
将 value
转换为整数。
注意: 此方法大致基于 ToInteger
。
引入版本 4.0.0
参数 (value)
value
(*): 要转换的值。
返回
(number): 返回转换后的整数。
示例
_.toInteger(3.2)
_.toInteger(Number.MIN_VALUE)
_.toInteger(Number.POSITIVE_INFINITY)
_.toInteger('3.2')
_.toLength
将 value
转换为适合用作类数组对象长度的整数。
注意: 此方法基于 ToLength
。
引入版本 4.0.0
参数 (value)
value
(*): 要转换的值。
返回
(number): 返回转换后的整数。
示例
_.toLength(3.2)
_.toLength(Number.MIN_VALUE)
_.toLength(Number.POSITIVE_INFINITY)
_.toLength('3.2')
_.toNumber
将 value
转换为数字。
引入版本 4.0.0
参数 (value)
value
(*): 要处理的值。
返回
(number): 返回数字。
示例
_.toNumber(3.2)
_.toNumber(Number.MIN_VALUE)
_.toNumber(Number.POSITIVE_INFINITY)
_.toNumber('3.2')
_.toPlainObject
将“value”转换为普通对象,将“value”的继承的可枚举字符串键属性展平为普通对象的自己的属性。
引入版本 3.0.0
参数 (value)
value
(*): 要转换的值。
返回
(Object): 返回转换后的普通对象。
示例
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
参数 (value)
value
(*): 要转换的值。
返回
(number): 返回转换后的整数。
示例
_.toSafeInteger(3.2)
_.toSafeInteger(Number.MIN_VALUE)
_.toSafeInteger(Number.POSITIVE_INFINITY)
_.toSafeInteger('3.2')
_.toString
将 value
转换为字符串。 null
和 undefined
值返回一个空字符串。 -0
的符号被保留。
引入版本 4.0.0
参数 (value)
value
(*): 要转换的值。
返回
(string): 返回转换后的字符串。
示例
_.toString(null)
_.toString(-0)
_.toString([1, 2, 3])