How to get a subset of a javascript object's properties

后端 未结 27 2034
刺人心
刺人心 2020-11-21 22:46

Say I have an object:

elmo = { 
  color: \'red\',
  annoying: true,
  height: \'unknown\',
  meta: { one: \'1\', two: \'2\'}
};

I want to m

27条回答
  •  野的像风
    2020-11-21 23:29

    I want to mention that very good curation here:

    pick-es2019.js

    Object.fromEntries(
      Object.entries(obj)
      .filter(([key]) => ['whitelisted', 'keys'].includes(key))
    );
    

    pick-es2017.js

    Object.entries(obj)
    .filter(([key]) => ['whitelisted', 'keys'].includes(key))
    .reduce((obj, [key, val]) => Object.assign(obj, { [key]: val }), {});
    

    pick-es2015.js

    Object.keys(obj)
    .filter((key) => ['whitelisted', 'keys'].indexOf(key) >= 0)
    .reduce((newObj, key) => Object.assign(newObj, { [key]: obj[key] }), {})
    

    omit-es2019.js

    Object.fromEntries(
      Object.entries(obj)
      .filter(([key]) => !['blacklisted', 'keys'].includes(key))
    );
    

    omit-es2017.js

    Object.entries(obj)
    .filter(([key]) => !['blacklisted', 'keys'].includes(key))
    .reduce((obj, [key, val]) => Object.assign(obj, { [key]: val }), {});
    

    omit-es2015.js

    Object.keys(obj)
    .filter((key) => ['blacklisted', 'keys'].indexOf(key) < 0)
    .reduce((newObj, key) => Object.assign(newObj, { [key]: obj[key] }), {})
    

提交回复
热议问题