Replace All Keys of Deeply Nested Objects or Array of Objects in JavaScript

Change the case of object keys recursively to camel, snake, kebab, upper, lower, and start. Or modify in another way.

For a deeply nested object or array of objects, we might want to replace all the keys in some way, such as modifying their case (camel case, snake case, etc.) or adding an underscore at the start of each key or on both sides. Or we may like to change the keys in any other way.

[Read More]

JavaScript Find Total Time Duration

Excluding overlapping and idle times

Say we have a an array of objects with start and end times in each. This could be anything, ranging from work experience (the way LinkedIn shows per job), to education, to sports career. We want to sum all these small experiences, excluding overlapping and idle times, and give out the total duration, which can further be converted into years, months, or days. [Read More]

JavaScript Generate Your Own Random Number Without Math Random

A Custom Code for Finding Pseudo-generated Number

We know that there is no true random number. The best we get is pseudo-random number, which comes from a seed value. I was wondering if I could get a random number without using Math.random() function of JavaScript. So I developed an algorithm of my own, which is a few lines of code that works by keeping, updating, and shifting a seed array in the state. [Read More]

Compare Two JavaScript Objects and Get the Updated Keys

Where a Value of the Key Has Changed

We have two similar JavaScript objects, and we are interested in finding which of the key(s), if any, have changed at the first level. A key in the object could hold any data type in its value, including array and object, and it could also be deeply nested. The change could mean anything, such as added, added to, removed, removed from, modified, or shuffled etc.

This kind of key identification might be required in cases where you need to compare the old and new state, such as previous and new filters, and figure out what exactly changed.

[Read More]

JavaScript Token Bucket Algorithm

And its Possible Uses

Token Bucket is a rate-limiting algorithm in which there is a bucket that gets refilled at a particular rate with tokens. To perform an action, one or more tokens can be taken out or redeemed from this bucket. When there are no more tokens left, the action cannot be performed until the bucket is refilled and further tokens are available. [Read More]

JavaScript Flatten Deeply Nested Array of Objects Into Single Level Array

Using plain JavaScript, and lodash's flatMapDeep method.

Requirement: We have a deeply nested array of objects. We want to bring all the nested objects into the array at the root level. Following is the example array familyTree that has multiple people in the root, and many of them have children array containing further members: [Read More]
When you purchase through links on, I may earn an affiliate commission.