JavaScript Easy technical 0 views 1 min read

What is the difference between Object.keys(), Object.values(), and Object.entries()?

Peer-reviewed by HireXTech Technical Panel Updated for 2025/2026 hiring Editorial standards
Practise this track
Interviewer Expectations for this Question
01
Core Competency

Assesses fundamental understanding of JavaScript conventions, runtime behavior, and memory/performance considerations.

02
Evaluation Criteria

Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.

Comprehensive Model Answer Verified Solution

These three methods extract different parts of an object's own enumerable properties:

     const person = {
       name: 'John',
       age: 30,
       city: 'New York'
     };

     // Object.keys() - returns array of property names
     console.log(Object.keys(person));
     // ['name', 'age', 'city']

     // Object.values() - returns array of property values
     console.log(Object.values(person));
     // ['John', 30, 'New York']

     // Object.entries() - returns array of [key, value] pairs
     console.log(Object.entries(person));
     // [['name', 'John'], ['age', 30], ['city', 'New York']]
     

Common use cases:

  1. Object.keys() for iteration:
        Object.keys(person).forEach(key => {
          console.log(`${key}: ${person[key]}`);
        });
        
  1. Object.values() for value processing:
        const sum = Object.values({ a: 1, b: 2, c: 3 })
          .reduce((acc, val) => acc + val, 0); // 6
        
  1. Object.entries() for Map conversion:
        const map = new Map(Object.entries(person));
        
        // Or converting back from Map to Object
        const obj = Object.fromEntries(map);
        
  1. Object.entries() for filtering:
        const filtered = Object.fromEntries(
          Object.entries(person).filter(([key, value]) => 
            typeof value === 'string'
          )
        );
        

Note: All three methods only return own, enumerable properties, not inherited ones.

Candidate Response Strategy & Interview Tips

  1. Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
  2. Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
  3. Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
  4. Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.
Related Topics & Skills
Spotted an error or have an alternative solution?