使用对象分配来删除不同的属性-ES6
Using object assign to delete properties that are different -ES6
下面是2个对象,我想要的是对象。assign(initalPlan, data),但是我想删除data中没有提供的字段。
const initialPlan = {
default_plan: false,
external_plan_id: fakeString,
public_available: true,
name: fakeString,
price: fakeNumber,
pricing_period: fakeNumber,
pricing_period_unit: fakeString,
space_limit: fakeNumber,
staff_max_limit: fakeNumber,
staff_min_limit: fakeNumber,
trial_period: fakeNumber,
trial_period_unit: fakeString,
};
和其他对象:
const data = {
external_plan_id: plan.external_plan_id,
space_limit: plan.space_limit,
staff_min_limit: plan.staff_min_limit,
staff_max_limit: plan.staff_max_limit,
file_storage_limit: plan.file_storage_limit,
file_storage_limit_unit: plan.file_storage_limit_unit,
default_plan: plan.default_plan,
};
任何想法?
在你有了data
和initialPlan
对象之后,你可以这样做来删除initialPlan
上不存在于data
上的属性。然后你可以使用Object.assign(initialPlan, data)
。
const dataKeys = Object.keys(data);
const initialPlanKeys = Object.keys(initialPlan);
initialPlanKeys.forEach(k => {
if (!dataKeys.includes(k))
delete initialPlan[k];
});
您应该使用Object.assign
并删除所有不属于数据的键
const initialPlan = {
key1: 1,
key2: 2,
key3: 3
}
const data = {
key1: 10,
key2: 0
}
Object.assign(initialPlan, data);
Object.keys(initialPlan).forEach(function(key){
if(!data.hasOwnProperty(key)) delete initialPlan[key];
});
console.log(initialPlan)
相关文章:
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- ES6非结构化中的计算属性-非结构化整体对象
- 观察ES6模块属性
- Javascript ES6 的属性和支持值命名约定
- 原型上具有默认属性的es6类在traceur中抛出
- 如何使用ES6在Ember中声明可观察性或计算属性
- 重构作为属性从 es5 传递到 es6 的函数
- 如何从 promise 内部访问 JavaScript 类的属性?(使用 ES6 而不是 Self)
- 在 ES6 中,允许解构类实例属性
- 无法在 es6 继承的类中设置属性
- ES6 类属性定义
- 在 ES6 中自动将参数设置为实例属性
- 从 ES6 中内联的属性子集创建对象
- 浅拷贝对象在 ES6/ES7 中省略一个或多个属性
- 在 ES6 类中具有私有属性和方法
- 访问内部属性名称以计算 ES6 中的新属性
- ES6计算(动态)属性名称
- 使用(ES6)计算的属性名称更新嵌套对象
- 为ES5或ES6中对象的嵌套属性简明定义Getter和Setter
- 使用对象分配来删除不同的属性-ES6