_.pick(object, [props])
创建一个从object中选中的属性的对象。
示例:
var object = { 'a': 1, 'b': '2', 'c': 3 }; _.pick(object, ['a', 'c']); // => { 'a': 1, 'c': 3 }
_.cloneDeep(value)
深拷贝value
示例:
var objects = [{ 'a': 1 }, { 'b': 2 }]; var deep = _.cloneDeep(objects); console.log(deep[0] === objects[0]); // => false
_.filter(collection, [predicate=_.identity])
遍历集合中的元素,筛选出一个经过predicate检查结果为真值的数组,predicate会传入3个参数:(value, index|key, collection)
示例:
var resolve = _.partial(_.map, _, 'user'); var users = [ { 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false } ]; resolve( _.filter(users, function(o) { return !o.active; }) ); // => ['fred'] // 使用了 `_.matches` 的回调结果 resolve( _.filter(users, { 'age': 36, 'active': true }) ); // => ['barney'] // 使用了 `_.matchesProperty` 的回调结果 resolve( _.filter(users, ['active', false]) ); // => ['fred'] // 使用了 `_.property` 的回调结果 resolve( _.filter(users, 'active') ); // => ['barney']
_.partial(func, [partials])
创建一个函数。该函数调用func,并传入预设的参数,默认以_作为附加部分参数的占位符。
示例:
var greet = function(greeting, name) { return greeting + ' ' + name; }; var sayHelloTo = _.partial(greet, 'hello'); sayHelloTo('fred'); // => 'hello fred' // 使用了占位符 var greetFred = _.partial(greet, _, 'fred'); greetFred('hi'); // => 'hi fred'
_.get(object, path, [defaultValue])
根据对象路径获取值。如果解析value是undefined会以defaultValue取代
示例:
var object = { 'a': [{ 'b': { 'c': 3 } }] }; _.get(object, 'a[0].b.c'); // => 3 _.get(object, ['a', '0', 'b', 'c']); // => 3 _.get(object, 'a.b.c', 'default'); // => 'default'
_isObject(value)
检查value是否是object的类型(包括arrays, functions, objects, regexes, new Number(0),new String(''))
示例:
_.isObject({}); // => true _.isObject([1, 2, 3]); // => true _.isObject(_.noop); // => true _.isObject(null); // => false
_.isObjectLike(value)
检查value是否是类对象。类对象是指typeof结果为“object”的对象,除了null
示例:
_.isObjectLike({}); // => true _.isObjectLike([1, 2, 3]); // => true _.isObjectLike(_.noop); // => false _.isObjectLike(null); // => false
_.isArray(value)
检查value是否是Array类对象
示例:
_.isArray([1, 2, 3]); // => true _.isArray(document.body.children); // => false _.isArray('abc'); // => false _.isArray(_.noop); // => false
_.isArrayLike(value)
检查value是否是类数组。类数组不能是一个函数,并且value.length是个大于等于0、小于等于Number.MAX_SAFE_INTEGER的整数
目前我知道的类数组有HTMLCollection、NodeList、arguments
示例:
_.isArrayLike([1, 2, 3]); // => true _.isArrayLike(document.body.children); // => true _.isArrayLike('abc'); // => true _.isArrayLike(_.noop); // => false