Код добавляет функцию nod() на прототип массива (Array).
declare interface Array<T> {
nod(): number;
}
Array.prototype.nod = function () {
let x = this[0];
for (let i = 1; i < this.length; i++) {
let y = this[i];
while (x && y) x > y ? (x %= y) : (y %= x);
x += y;
}
if (typeof x !== "number" || isNaN(x))
throw new TypeError("Return type is not 'number'.");
return x;
};
console.log([1.5, 2, 5, 6, 7].nod()); // 0.5
Array.prototype.nod = function () {
let x = this[0];
for (let i = 1; i < this.length; i++) {
let y = this[i];
while (x && y) x > y ? (x %= y) : (y %= x);
x += y;
}
if (typeof x !== "number" || isNaN(x))
throw new TypeError("Return type is not 'number'.");
return x;
};
console.log([1.5, 2, 5, 6, 7].nod()); // 0.5