首页 > 解决方案 > 有没有更好的写法?

问题描述

有没有更好的写法?我认为它是如此过剩。

let {
        recruitmentType,
        positionName,
        positionType,
        labels,
        workAddressId,
        positionBrightPoint,
        positionDesc,
        department,
        jobNature,
        workYear,
        education,
        salary,
        isSchoolPosition
      } = this.data;
      windows.setStorage('saveReleaseJob', {
        recruitmentType,
        positionName,
        positionType,
        labels,
        workAddressId,
        positionBrightPoint,
        positionDesc,
        department,
        jobNature,
        workYear,
        education,
        salary,
        isSchoolPosition
      })

标签: javascriptecmascript-6

解决方案


您可以使用一个函数来获取所需属性的子集。

const getOnly = (object, keys) => Object.assign({}, ...keys.map(k => ({ [k]: object[k] })));

var object = { a: 1, b: 2, c: 3, d: 4 },
    keys = ['a', 'b'],
    subset = getOnly(object, keys);

console.log(subset);

随着即将到来Object.fromEntries

const getOnly = (object, keys) => Object.fromEntries(keys.map(k => [k, object[k]]));

var object = { a: 1, b: 2, c: 3, d: 4 },
    keys = ['a', 'b'],
    subset = getOnly(object, keys);

console.log(subset);


推荐阅读