underscore.js 源码分析(十三)
keys
values
pairs
invert
functions
mapObject
findKey
keys(Object)
使用 keys(Object)
用于获得 Object
的所有属性名称。 与 es6
中 Object.keys()
功能相同,不同的是做了兼容性处理。1 | function keys (obj) { |
values(Object)
使用 values(Object)
用于获得对象的所有的属性名称。 类似于使用 Object.values
获取到对象的属性值。1 | function values (obj) { |
pairs()
使用 pairs()
用于将一个对象转化为键值对的形式。自己写的函数:1 | function pairs (obj) { |
1 | _.pairs = function(obj) { |
invert()
invert(object)
使用 invert
实现的是返回一个 object
的副本,在这个副本中, object
中的键和值互换。源码:1 | function invert(object) { |
functions
functions(object)
返回一个对象中所有的方法名,并且是已经经过排序的方法。源码分析:1 | _.functions = function (obj) { |
mapObject
类似于使用数组的 map
方法,不同的是这个方法针对的是对象的 map
方法, 使用 mapObject
用来对于对象的属性值进行操作, 实现的源码如下:1 | _.mapObject = function(obj, iteratee, context) { |
findKey
_.findKey(obj, predicate, context)
使用 findKey
返回的是 obj
中第一个满足 predicate
函数的 key
。1 | let numbers = { |
源码分析
findKey
源码:1 | _.findKey = function (obj, predicate, context) { |