【问题标题】:Copy value from an object to another, ignoring new properties将值从一个对象复制到另一个对象,忽略新属性
【发布时间】:2016-10-13 23:46:44
【问题描述】:

我有 2 个对象:

person{
 name : string
 gender : string
}

woman{
 name : string
}

我有一个 obj“人”,充满了值,我想将这些值复制到一个新的 obj“女人”中,但我不想扩展“女人”,因为我不希望它有“性别”属性 我尝试过使用 jQuery.extend(),但它会将“gender”添加到“woman”。

我该怎么办?

编辑:

实际上,完整的上下文是,在我的应用程序中,我有一些表示数据的类,以及我不想保存的额外属性。在这个函数中,我需要从那些额外的属性中“清除”那些对象。 我为每个类都有一个接口,其中包含我要保存的属性。

所以我这样做:

var objInterface = <IWoman>{};

然后我有一个空对象,所以我需要将 person.name 复制到我的 objInterface.name 中,这样我就可以只用好的数据序列化我的 objInterface。

我还有很多其他的类,所以我需要动态地做这些

【问题讨论】:

  • 你想要obj2中obj1的prop1,对吧?
  • @ParagBhayani 是的,我想要 obj2.prop1 中 obj1.prop1 的值,但我不希望 obj2 有 prop2 ^^
  • woman.name = person.name???
  • 大声笑是的,这是一种方法,但我有很多课程需要做同样的事情
  • 你为什么不提供你的用例的具体示例,否则你找不到更简单的那样。你说的是类,但 AFAIK,javascript 中没有类的概念

标签: javascript jquery angularjs typescript


【解决方案1】:

var obj1 = {
  prop1: 'string1',
  prop2: 'string2'
}

var obj2 = {
  prop1: 'string3'
}


Object.keys(obj1).forEach(function(key) {
  if (obj2.hasOwnProperty(key)) obj2[key] = obj1[key];
});
console.log(obj2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2014-12-08
    • 2015-09-22
    • 2016-12-21
    • 2018-02-01
    • 1970-01-01
    相关资源
    最近更新 更多