javascript从“schema”对象复制对象值

时间:2015-09-21 14:01:36

标签: javascript object lodash

这是情况。我有一个包含大量信息的对象,例如

var a = {
  one:"foo",
  two:"bar"
}

现在我想提供包含指定键的其他对象。例如

var schema = {
  two:""
}

然后只需在模式键

上创建一个新对象

在这里,我想使用lodash / moutjs或任何lib

抱歉可怜的英格兰

4 个答案:

答案 0 :(得分:1)

使用lodash,您可以_.pick()来自originalObj(您命名为a)的架构_.keys()

_.pick(originalObj, _.keys(schema));

如果您想要纯JS,可以reduce架构Object.keys()

Object.keys(schema).reduce(function(obj, key) {
    originalObj.hasOwnProperty(key) && (obj[key] = originalObj[key]);
    return obj;
}, {});

答案 1 :(得分:0)

我不确定我是否正确理解你。但是,例如,您可以在underscore中使用pick

var a = {
    one:"foo",
    two:"bar"
}
var schema = _.pick(a, "two"); // returns {two: "foo")

请注意,这也适用于lodash

答案 2 :(得分:0)

您不需要用于简单操作的库。这是一个有效的代码:

overflow-y: scroll !important;

答案 3 :(得分:0)

var copyObject = function(origin, keys) {
  var destination = {};
  for (var i = keys.length - 1; i >= 0; i--) {
    if(origin.hasOwnProperty(keys[i])) {
      destination[keys[i]] = origin[keys[i]];
    }
  };
  return destination;
};

var a = {
  one:"foo",
  two:"bar"
};

var schema = copyObject(a, ['two']);