1,获取对象所有属性名称
_.keys({one : 1, two : 2, three : 3});
=> ["one", "two", "three"]
2,获取对象的所有值
_.values({one : 1, two : 2, three : 3});
=> [1, 2, 3]
3,把对象转换成对数组(_.object的反操作)
_.pairs({one: 1, two: 2, three: 3});
=> [["one", 1], ["two", 2], ["three", 3]]
4,对象的键值对换,但是,键和值必须都是字符串
_.invert({Moe: "Moses", Larry: "Louis", Curly: "Jerome"});
=> {Moses: "Moe", Louis: "Larry", Jerome: "Curly"};
5,返回对象中函数的名称
var obj = {a:function(){},b:function(){},c:function(){}} _.functions(obj);
=>["a", "b", "c"]
6,_.extend({name : 'moe'}, {age : 50});
=> {name : 'moe', age : 50}
7,过滤属性,返回keys相对应的属性(返回的是一个对象)
ar obj = {a:function(){},b:10,c:"aaa"}; _.pick(obj,'a','c');
=>{a:function(){},c:"aaa"
8,过滤属性,与7相反,把keys对应的属性除掉
ar obj = {a:function(){},b:10,c:"aaa"}; _.omit(obj,'a','c');
=>{b:10}
9,用defaultsd对象的属性去填充object中缺少的属性,object的原有属性值不会改变
var iceCream = {flavor : "chocolate"};
_.defaults(iceCream, {flavor : "vanilla", sprinkles : "lots"});
=> {flavor : "chocolate", sprinkles : "lots"} 请注意flavor的值 ,没有改变
10,对象浅拷贝,拷贝的是对像的引用
_.clone({name : 'moe'}); => {name : 'moe'};
11,两个对象深度比较,确定他们是否应该视为相等
var moe = {name : 'moe', luckyNumbers : [13, 27, 34]};
var clone = {name : 'moe', luckyNumbers : [13, 27, 34]};
moe == clone =>false _.isEqual(moe,clone) =>true
类型判断:
12,isEmpty_.isEmpty(object) 如果object 不包含值,返回true。
13,isElement_.isElement(object) 如果object是一个DOM元素,返回true
14,isArray_.isArray(object) 如果object是一个数组,返回true。
15,isObject_.isObject(value) 如果object是一个对象,返回true。需要注意的是JavaScript数组和函数是对象,字符串和数字不是。
16,isArguments isFunction isString isNumber isFinite (是否有限)
isBoolean isDate isRegExp isNull isUndefined
isNaN(和原生的isNaN 函数不一样,如果变量是undefined,原生的isNaN 函数也会返回 true。)
_.keys({one : 1, two : 2, three : 3});
=> ["one", "two", "three"]
2,获取对象的所有值
_.values({one : 1, two : 2, three : 3});
=> [1, 2, 3]
3,把对象转换成对数组(_.object的反操作)
_.pairs({one: 1, two: 2, three: 3});
=> [["one", 1], ["two", 2], ["three", 3]]
4,对象的键值对换,但是,键和值必须都是字符串
_.invert({Moe: "Moses", Larry: "Louis", Curly: "Jerome"});
=> {Moses: "Moe", Louis: "Larry", Jerome: "Curly"};
5,返回对象中函数的名称
var obj = {a:function(){},b:function(){},c:function(){}} _.functions(obj);
=>["a", "b", "c"]
6,_.extend({name : 'moe'}, {age : 50});
=> {name : 'moe', age : 50}
7,过滤属性,返回keys相对应的属性(返回的是一个对象)
ar obj = {a:function(){},b:10,c:"aaa"}; _.pick(obj,'a','c');
=>{a:function(){},c:"aaa"
8,过滤属性,与7相反,把keys对应的属性除掉
ar obj = {a:function(){},b:10,c:"aaa"}; _.omit(obj,'a','c');
=>{b:10}
9,用defaultsd对象的属性去填充object中缺少的属性,object的原有属性值不会改变
var iceCream = {flavor : "chocolate"};
_.defaults(iceCream, {flavor : "vanilla", sprinkles : "lots"});
=> {flavor : "chocolate", sprinkles : "lots"} 请注意flavor的值 ,没有改变
10,对象浅拷贝,拷贝的是对像的引用
_.clone({name : 'moe'}); => {name : 'moe'};
11,两个对象深度比较,确定他们是否应该视为相等
var moe = {name : 'moe', luckyNumbers : [13, 27, 34]};
var clone = {name : 'moe', luckyNumbers : [13, 27, 34]};
moe == clone =>false _.isEqual(moe,clone) =>true
类型判断:
12,isEmpty_.isEmpty(object) 如果object 不包含值,返回true。
13,isElement_.isElement(object) 如果object是一个DOM元素,返回true
14,isArray_.isArray(object) 如果object是一个数组,返回true。
15,isObject_.isObject(value) 如果object是一个对象,返回true。需要注意的是JavaScript数组和函数是对象,字符串和数字不是。
16,isArguments isFunction isString isNumber isFinite (是否有限)
isBoolean isDate isRegExp isNull isUndefined
isNaN(和原生的isNaN 函数不一样,如果变量是undefined,原生的isNaN 函数也会返回 true。)