Interview Q&A / JavaScript

BeginnerQuick answer1 min readUpdated 3 Oct 2026

What do Object.keys, Object.values, Object.entries and Object.fromEntries do?

SHORT ANSWER

keys gives an array of own enumerable property names, values gives their values, and entries gives [key, value] pairs. fromEntries does the reverse and builds an object from pairs, which makes transforming objects easy.

Explain it simply

An object is like a fee receipt with labels and amounts. You often want just the labels, just the amounts, or both together to loop over.

  • Object.keys(obj): the labels.
  • Object.values(obj): the amounts.
  • Object.entries(obj): pairs like ["tuition", 50000], perfect with destructuring in for...of or map.
  • Object.fromEntries(pairs): pairs back into an object.

Combine entries, array methods and fromEntries to transform an object: turn it into entries, map over them, and rebuild. These only include the object's own, enumerable properties, not inherited ones.

Example

js
const fee = { tuition: 50000, hostel: 20000 };

console.log(Object.keys(fee));                       // Output: ["tuition","hostel"]
console.log(Object.values(fee));                     // Output: [50000,20000]
console.log(Object.entries(fee));                    // Output: [["tuition",50000],["hostel",20000]]

const total = Object.values(fee).reduce((a, n) => a + n, 0);
console.log(total);                                  // Output: 70000

const doubled = Object.fromEntries(
  Object.entries(fee).map(([k, v]) => [k, v * 2])
);
console.log(doubled);                                // Output: {"tuition":100000,"hostel":40000}

What to say in the interview

"keys, values and entries return arrays of an object's own enumerable properties. entries pairs work nicely with destructuring, and fromEntries rebuilds an object, so entries, map and fromEntries is my pattern for transforming objects."

Common mistakes

  • Using for...in and forgetting it also visits inherited enumerable properties.
  • Expecting Object.keys to return symbol keys. It does not.

#javascript#objects

Related questions

Practise more JavaScript questions

Test your recall with short answers, then return to the detailed explanations when you need context.

Open JavaScript quick answers →

Get new questions like this by email

One short email when something new and useful lands. No spam, unsubscribe in one tap.

By subscribing you agree to the Privacy Policy.