仅克隆非函数的属性

时间:2015-01-06 11:13:37

标签: javascript lodash

基本上我有一些对象,我只需要他们的数据而没有任何功能,例如:

var obj1 = {
  test: function() {
    doSomeStuff();
  },
  foo: 'bar',
}

var obj2 = _.someThing(obj1);

> obj2 = {
  foo: 'bar'
}

我已经从这样的事情开始,但它并不完全是我想要的,

_.mapValues(obj1, function(value) {
  if (_.isFunction(value)) {
    return false;
  }
  return value
});

> { test: false, foo: 'bar' }

具有lodash的高度首选解决方案。

1 个答案:

答案 0 :(得分:2)

您可以使用_.pick功能,就像这样

var res = _.pick(obj1, function (el) {
  return !_.isFunction(el);
})

Example