JSFiddle - React, Tailwind, and code Playground

by Dmitry Kostenko

JavaScript

// Стоит иметь ввиду:
// - for..in + hasOwnProperty быстрее в данном случае, в виду оптимизации функции
// - если функции forIn/forInHOP будут принимать разные типы объектов (hidden class), то они в определенный момент станут многоморфными (перестанет оптимизироваться и станет медленей)
// - в реальных условиях функции могут давать другие результаты, так как на результаты влияет количество ключей в объекте, длина цепочки прототипов, тип свойств и другие факторы

var o = {
  'Hard Working': 1,
  'Honest': 2,
  'Intelligent': 3,
  'Team player': 4
};

function forIn(o){
    var sum = 0;

    for (var key in o) {
        sum += o[key];
    }

    return sum;
}

console.time('forIn');
for (var x = 0, i = 0; i < 1e6; i++)
  x += forIn(o);
console.timeEnd('forIn');