Lodash从3到4改变了这个代码不起作用?

时间:2016-09-15 04:22:04

标签: javascript lodash

我有这样的代码:

const _ = require('lodash');

const fn = _.partialRight(_.pick, _.identity);

const x = { some: 'value', empty: null };

const y = fn(x);

console.log('x:', x);
console.log('y:', y);

fn应该是remove empty properties

Lodash 3.10.1的结果:

x: { some: 'value', empty: null }
y: { some: 'value' }

Lodash 4.15.0的结果:

x: { some: 'value', empty: null }
y: {}

Lodash 4发生了什么变化,它已经无法正常工作了?

1 个答案:

答案 0 :(得分:1)

将您的const fn = _.partialRight(_.pick, _.identity)更改为 const fn = _.partialRight(_.pickBy, _.identity);

_.pick过去只是一个功能,但在最新的更新中,它们分为_.pick_.pickBy。传递已知密钥时使用_.pick,使用自定义函数测试是否应根据自己的参数选择密钥/值时使用_.pickBy

https://lodash.com/docs/4.15.0#pick

https://lodash.com/docs/4.15.0#pickBy