使用对象分配删除不同的属性-ES6

时间:2016-11-02 13:17:00

标签: javascript ecmascript-6 redux react-redux

下面是我想要的2个对象是Object.assign(initalPlan,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,
        };

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

获得datainitialPlan个对象后,您可以执行以下操作,删除initialPlandata上未出现的Object.assign(initialPlan, data)属性。然后你可以使用const dataKeys = Object.keys(data); const initialPlanKeys = Object.keys(initialPlan); initialPlanKeys.forEach(k => { if (!dataKeys.includes(k)) delete initialPlan[k]; });

function returnHighest() {
    var maxH = 0;
    $('.termPanel').each(function(index, elmt){
        var elmtH = $(elmt).outerHeight();
        if (elmtH > maxH) {
            maxH = elmtH;
        }
    });
    return maxH;
}

var h = returnHighest();

$('.termPanel').css('height', h);

答案 1 :(得分:-1)

您应该使用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)