【发布时间】:2014-04-07 19:21:54
【问题描述】:
我有一个对象。我想通过删除除某些特定属性之外的所有属性来修改对象(而不是克隆它)。例如,如果我从这个对象开始:
var myObj={
p1:123,
p2:321,
p3:{p3_1:1231,p3_2:342},
p4:'23423',
//....
p99:{p99_1:'sadf',p99_2:234},
p100:3434
}
只需要属性p1、p2和p100,我怎样才能获得这个对象:
var myObj={
p1:123,
p2:321,
p100:3434
}
我了解如何通过蛮力做到这一点,但想要一个更优雅的解决方案。
【问题讨论】:
-
如果不使用蛮力(或克隆对象),我认为这是不可能的
-
什么是“蛮力”?
-
我猜你玩得很开心用户,有很多东西要读;)
-
这个人首先给出了最好的答案之一(第二个代码块):stackoverflow.com/a/22202827/1636522。然而,正如George Jempty 所提到的,旧的浏览器不会喜欢
indexOf。不过可以在此处找到解决方法:mdn.beonex.com/en/Core_JavaScript_1.5_Reference/Global_Objects/…. -
@Ryan 不错的答案。
let result = (({ p1, p2, p100 }) => ({ p1, p2, p100 }))(myObj);工作完美。不确定切换我选择的答案是否为时已晚,但如果您希望将此作为答案发布,请尝试。谢谢
标签: javascript