Iterate Object

Benchmark created on


Setup

objectWithValues = {
    a: 1,
    b: '2',
    c: true,
    d: false,
    e: null,
    f: undefined,
    g: [1, 2, 3],
    h: { a: 1, b: 2 },
    i: new Date(),
    j: function () {},
};

Test runner

Ready to run.

Testing in
TestOps/sec
entries
function _iterateObject(
    object,
    callback
) {
    if (object == null) {
        return;
    }

    if (Array.isArray(object)) {
        for (let i = 0; i < object.length; i++) {
            callback(i.toString(), object[i]);
        }
        return;
    }

    for (const [key, value] of Object.entries(object)) {
        callback(key, value);
    }
}


for (let i = 0; i < 1000; i++) {
    _iterateObject(objectWithValues, () => {});
}

ready
keys
function _iterateObject(
    object,
    callback
) {
    if (object == null) {
        return;
    }

    if (Array.isArray(object)) {
        for (let i = 0; i < object.length; i++) {
            callback(i.toString(), object[i]);
        }
        return;
    }

    for (const key of Object.keys(object)) {
        callback(key, object[key]);
    }
}


for (let i = 0; i < 1000; i++) {
    _iterateObject(objectWithValues, () => {});
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.