Initializes an array containing the numbers in the specified range where start
and end
are inclusive and the ratio between two terms is step
.
Returns an error if step
equals 1
.
Array.from()
, Math.log()
and Math.floor()
to create an array of the desired length, Array.prototype.map()
to fill with the desired values in a range.start
, to use a default value of 1
.step
, to use a default value of 2
.const geometricProgression = (end, start = 1, step = 2) =>
Array.from({
length: Math.floor(Math.log(end / start) / Math.log(step)) + 1,
}).map((_, i) => start * step ** i);
geometricProgression(256); // [1, 2, 4, 8, 16, 32, 64, 128, 256]
geometricProgression(256, 3); // [3, 6, 12, 24, 48, 96, 192]
geometricProgression(256, 1, 4); // [1, 4, 16, 64, 256]
Would you like to help us improve 30 seconds of code?Take a quick survey
JavaScript, Math
Creates an array of numbers in the arithmetic progression, starting with the given positive integer and up to the specified limit.
JavaScript, Math
Returns the powerset of a given array of numbers.
JavaScript, Math
Calculates the greatest common divisor between two or more numbers/arrays.