Pick properties from an object

Build a new object with only the requested own properties.

JavaScript Version 1.0.0 · MIT · .md

pick-a-subset-of-properties-of-an-object.js
function pick({ value, keys }) { return Object.fromEntries(keys.filter(key => Object.hasOwn(value, key)).map(key => [key, value[key]])); }

Input & expected output

Input

{
  "value": {
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Order 8812 confirmed",
    "internalNote": "VIP customer"
  },
  "keys": [
    "from",
    "to",
    "subject"
  ]
}

Expected output

{
  "from": "[email protected]",
  "to": "[email protected]",
  "subject": "Order 8812 confirmed"
}

The edge case

Input

{
  "value": {
    "a": 1
  },
  "keys": [
    "missing"
  ]
}

Expected output

{}

Know the limits

  • Missing and inherited properties are skipped. Values are not deeply cloned.
  • JSON input has string property keys only.

The function above is the implementation used by the lab. The lab validates JSON types and caps size before execution; include equivalent validation when accepting untrusted input in your application.

Source & maintenance

Based on Pick a subset of properties of an object from the original 1loc collection by Nguyen Huu Phuoc. Copyright (c) 2020 phuoc-ng. MIT licensed.

Curated implementation; explicit input bounds, edge cases, local fixtures and rebuilt presentation. Original MDX retained as inert source evidence.

Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.

Local fixture scope · Node.js 22.23.2 · reviewed October 28, 2026. No external service is required.

Keep exploring

Type two or more characters. Try “duplicate”, “webhook” or “retry”.