浅拷贝对象在 ES6/ES7 中省略一个或多个属性
Shallow copy object leaving out one or more properties in ES6/ES7?
这就是
我一直在做的事情:
var props = { id: 1, name: 'test', children: [] }
//copy props but leave children out
var newProps = { ...props }
delete newProps.children
console.log(newProps) // { id: 1, name: 'test' }
有没有更简单、更简单的方法?
您可以使用解构赋值:
var props = { id: 1, name: 'test', children: [] }
var {children:_, ...newProps} = props;
console.log(newProps) // { id: 1, name: 'test' }
console.log(_) // [] - as an "empty" placeholder
(使用与您已经在使用的 ES7 相同的休息/扩展属性建议)
var props = { id: 1, name: 'test', children: [] }
function clone(orig, blacklistedProps) {
var newProps = {};
Object.keys(props).forEach(function(key) {
if (!blacklistedProps || blacklistedProps.indexOf(key) == -1) {
newProps[key] = props[key];
}
});
return newProps;
}
var newProps = clone(props, ['children']);
console.log(newProps) // { id: 1, name: 'test' }
var newProps1 = clone(props);
console.log(newProps1) // { id: 1, name: 'test', children:[] }
相关文章:
- AngularJS:如何用同一对象的另一个属性访问一个属性
- 如何为下拉列表的每个选项添加一个属性
- 如果另一个属性相同,请删除该属性
- Knockout observable没有观察到其中一个属性
- 检查来自不同数组的两个元素的一个属性是否相等
- 我想从使用onkeypress事件的文本区域获取一个属性
- ..的Javascript..循环中的对象没有在最后一个属性上运行
- 节点发布错误对象的第一个“属性”
- 如何在 XML 中搜索特定属性以检索另一个属性
- Angular JS如何观看“;只有一个属性”;
- 如果我们使用:运算符在函数内部定义一个属性,会发生什么
- AngularJS ng通过对象中的一个属性和一个文本框重复筛选
- 如何检索上一个属性的名称属性
- 如何使用jQuery只删除一个属性值而不删除另一个
- JavaScript-获取一个属性'的值
- 在ember.js记录上使用toJSON,将其中一个属性设置为null
- 如何在集合中指定模型的一个属性
- 基于一个属性Javascript检索多个对象
- 是否可以在材质ui中只更改样式道具中的一个属性
- 使用jquery从xml中选择一个属性