Finding the smallest value in a JSON object in JavaScript

Finding the smallest value in a JSON object is a common task in JavaScript. This involves traversing through an object's properties and comparing their numeric values to determine the minimum.

When working with objects that contain numeric values, we need to iterate through all properties and find the one with the smallest value. JavaScript provides several approaches to accomplish this efficiently.

Example

Here's how to find the smallest value using the reduce() method:

const obj = {
    "a": 4,
    "b": 2,
    "c": 5,
    "d": 1,
    "e": 3
};

const findSmallestValue = obj => {
    const smallest = Object.keys(obj).reduce((acc, key) => {
        return Math.min(acc, obj[key]);
    }, Infinity);
    return smallest;
};

console.log(findSmallestValue(obj));
1

Using Object.values() Method

A more direct approach uses Object.values() to get all values directly:

const obj = {
    "a": 4,
    "b": 2,
    "c": 5,
    "d": 1,
    "e": 3
};

const findSmallestValue = obj => {
    return Math.min(...Object.values(obj));
};

console.log(findSmallestValue(obj));
1

Using for...in Loop

For a more traditional approach, you can use a for...in loop:

const obj = {
    "a": 4,
    "b": 2,
    "c": 5,
    "d": 1,
    "e": 3
};

const findSmallestValue = obj => {
    let smallest = Infinity;
    for (let key in obj) {
        if (obj[key] < smallest) {
            smallest = obj[key];
        }
    }
    return smallest;
};

console.log(findSmallestValue(obj));
1

Comparison of Methods

Method Readability Performance Browser Support
Object.keys() + reduce() Good Medium ES5+
Math.min(...Object.values()) Excellent Good ES2017+
for...in loop Fair Best All browsers

Handling Edge Cases

Consider empty objects and non-numeric values:

const findSmallestValueSafe = obj => {
    const values = Object.values(obj).filter(val => typeof val === 'number');
    return values.length > 0 ? Math.min(...values) : null;
};

console.log(findSmallestValueSafe({})); // null
console.log(findSmallestValueSafe({a: "text", b: 5})); // 5
null
5

Conclusion

The Math.min(...Object.values(obj)) approach is the most concise and readable for finding the smallest value in a JSON object. For better performance with large objects, consider using a for...in loop.

Updated on: 2026-03-15T23:19:00+05:30

912 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements