博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lodash速览:对象Object方法(一)
阅读量:6211 次
发布时间:2019-06-21

本文共 2836 字,大约阅读时间需要 9 分钟。

1、_.assign(object, [sources]):对象的合并继承(不包含原型),后面覆盖前面的。

_.assign({a:1},{a:2},{a:3})    //{a: 3}

类似方法:

_.assignIn(object, [sources]):一样是合并继承,它就连原型都一并处理了。其实就是原来的_.extend()方法。
高级方法:
_.assignWith(object, sources, [customizer]):略。
_.assignInWith(object, sources, [customizer]):略。

2、_.at(object, [paths]):取出object指定位置的值并组成一个数组。

var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };_.at(object, ['a[0].b.c', 'a[1]']);     // => [3, 4]

3、_.create(prototype, [properties]):常见一个从原型继承的对象,并可以添加自己的属性。一般用于原型的继承。

function Shape() {  this.x = 0;  this.y = 0;}function Circle() { }Circle.prototype = _.create(Shape.prototype, {  'constructor': Circle});var circle = new Circle;circle instanceof Circle;    // => truecircle instanceof Shape;     // => true

4、_.defaults(object, [sources]):同样是继承合并对象,如果属性名一样,只保留最初的值。

类似方法:
_.defaultsDeep(object, [sources]):深合并,遇到嵌套的对象也会逐级对比合并。

_.defaults({ a: {b:2} }, {a: {b:1,c:3} });// { a:{b: 2} }_.defaultsDeep({ a: {b:2} }, {a: {b:1,c:3} });// { a:{b: 2, c: 3} }

5、_.findKey(object, [predicate=_.identity]):通过value查找key,仅匹配第一个查询到的项。

var users = {  'barney':  { 'age': 36, 'active': true },  'fred':    { 'age': 40, 'active': false },  'pebbles': { 'age': 1,  'active': true }};_.findKey(users, 'active'); // => 'barney'

类似方法:

_.findLastKey(object, [predicate=_.identity]):从后往前匹配。

6、_.forIn(object, [iteratee=_.identity]):对象的for in 遍历,包括原型上的属性。

_.forInRight(object, [iteratee=_.identity]):反向遍历。
_.forOwn(object, [iteratee=_.identity]):仅遍历自身属性,不包括原型。
_.forOwnRight(object, [iteratee=_.identity]):反向遍历自身属性。

function Foo() {  this.a = 1;  this.b = 2;}Foo.prototype.c = 3;_.forIn(new Foo, (value, key)=> console.log(key));    //  a b c_.forInRight(new Foo, (value, key)=> console.log(key));    //  c b a_.forOwn(new Foo, (value, key)=> console.log(key));    // a b_.forOwnRight(new Foo, (value, key)=> console.log(key));     // b a

7、_.functions(object):返回对象下可枚举的方法名称组成的数组,通过原型继承的不算。

_.functionsIn(object):同上,通过原型继承的也算。

function Foo() {  this.a = function(){};  this.b = function(){};}Foo.prototype.c = function(){};_.functions(new Foo);        // => ['a', 'b']_.functionsIn(new Foo);        // => ['a', 'b', 'c']

8、_.get(object, path, [defaultValue]):获取objdect指定路径的值,如果undefined就返回defalutValue。这个功能感觉有点鸡肋。

9、_.has(object, path):检查 path 是否是object对象的直接属性。

_.**hasIn**(object, path):
var object = { 'a': { 'b': 2 } };var other = _.create({ 'a': _.create({ 'b': 2 }) });_.has(object, 'a.b');    // => true_.has(other, 'a');        // => false_.hasIn(other, 'a');        // => true

10、_.invert(object):这个挺有趣的,把object的key和value对调。

_.**invertBy**(object, [iteratee=_.identity]):自定义迭代函数。
var object = { 'a': 1, 'b': 2, 'c': 1 };_.invert(object);     // => { '1': 'c', '2': 'b' }_.invertBy(object);     // => { '1': ["a", "c"], '2': ['b' ]}_.invertBy(object, value => 'group' + value);    //=> { 'group1': ["a", "c"], 'group2': ['b' ]}

转载地址:http://ixdja.baihongyu.com/

你可能感兴趣的文章
Java IO: 网络
查看>>
快速选择合适的机器学习算法
查看>>
《Nmap渗透测试指南》—第2章2.7节UDP Ping扫描
查看>>
android 防止反编译的若干方法
查看>>
JAVA springboot b2b2c多用户商城系统源码(四)SpringBoot 整合JPA
查看>>
弗罗里达州收税人接受比特币、比特币现金支付
查看>>
Java单例模式:饿汉与懒汉区别
查看>>
sublime text2 css格式化插件
查看>>
Dockfile结构
查看>>
MYSQL索引失效的各种情形总结
查看>>
tpcc-mysql mysql基准测试工具使用文档
查看>>
centos系统中添加epel丰富yum源
查看>>
功能测试的国别差异(日本与欧美)
查看>>
Cortex依赖管理
查看>>
DOS符号及相关例子
查看>>
windows2003域管理(1)
查看>>
解决git pull时出现的几个问题
查看>>
PL/SQL --> PL/SQL记录
查看>>
MPLS-聚合路由对LSP的破坏--高级feature
查看>>
 HTTP头信息解读
查看>>