最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Why _.pick(object, _.identity) in lodash returns empty Object? - Stack Overflow

programmeradmin2浏览0评论

I'm trying to move underscore to lodash. But this line of code baffles me.

On my current project we have this line of code.

obj = _.pick(obj, _.identity);

Which is pretty obvious that it's trying to delete empty property.

Now when I switch to lodash, the same line of code returns empty object for me.

I'm trying to figure why. How do I achieve the same effect in lodash?

I tried this on both lodash and underscore websites. They produce different results.

This is from lodash

var obj = {_v:'10.1', uIP:'10.0.0.0', _ts:'123'}
_.pick(obj, _.identity);
Object {}

This is from underscore

var obj = {_v:'10.1', uIP:'10.0.0.0', _ts:'123'}
_.pick(obj, _.identity);
Object {_v: "10.1", uIP: "10.0.0.0", _ts: "123"}

I'm trying to move underscore to lodash. But this line of code baffles me.

On my current project we have this line of code.

obj = _.pick(obj, _.identity);

Which is pretty obvious that it's trying to delete empty property.

Now when I switch to lodash, the same line of code returns empty object for me.

I'm trying to figure why. How do I achieve the same effect in lodash?

I tried this on both lodash and underscore websites. They produce different results.

This is from lodash

var obj = {_v:'10.1', uIP:'10.0.0.0', _ts:'123'}
_.pick(obj, _.identity);
Object {}

This is from underscore

var obj = {_v:'10.1', uIP:'10.0.0.0', _ts:'123'}
_.pick(obj, _.identity);
Object {_v: "10.1", uIP: "10.0.0.0", _ts: "123"}
Share Improve this question asked Mar 23, 2016 at 21:41 toytoy 12.2k29 gold badges101 silver badges180 bronze badges 3
  • Have a look at the docs: lodash./docs#pick (and notice the method that es after that). – Felix Kling Commented Mar 23, 2016 at 21:44
  • Oh, that's it. I thought lodash is patible with underscore. If you can put that as the answer. Thanks a lot. – toy Commented Mar 23, 2016 at 21:45
  • felix is a beast, so fast.... – omarjmh Commented Mar 23, 2016 at 21:52
Add a ment  | 

2 Answers 2

Reset to default 6

Why _.pick(object, _.identity) in lodash returns empty Object?

Because pick in lodash expects an array of property names to be passed to it:

var object = { 'a': 1, 'b': '2', 'c': 3 };

_.pick(object, ['a', 'c']);
// → { 'a': 1, 'c': 3 }

How do I achieve the same effect in lodash?

Lodash has a method called pickBy which accepts a callback function:

var object = { 'a': 1, 'b': '2', 'c': 3 };

_.pickBy(object, _.isNumber);
// → { 'a': 1, 'c': 3 }

I had the same issue, lodash has a slightly different name for this method than underscore:

var object = { 'a': 1, 'b': '2', 'c': 3 };

_.pickBy(object, _.isNumber);
// → { 'a': 1, 'c': 3 }
发布评论

评论列表(0)

  1. 暂无评论