locutus
Version:
Locutus other languages' standard libraries to JavaScript for fun and educational purposes
30 lines (29 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.dist = dist;
function dist(p, q) {
// discuss at: https://locutus.io/python/dist/
// parity verified: Python 3.12
// original by: Kevin van Zonneveld (https://kvz.io)
// note 1: Returns Euclidean distance between two same-length numeric vectors.
// example 1: dist([0, 0], [3, 4])
// returns 1: 5
// example 2: dist([1, 2, 3], [1, 2, 3])
// returns 2: 0
// example 3: dist([-1, 2], [2, -2])
// returns 3: 5
if (!Array.isArray(p) || !Array.isArray(q)) {
throw new TypeError('dist() requires array-like arguments');
}
if (p.length !== q.length) {
throw new Error('dist() points must have the same dimension');
}
let sum = 0;
for (let i = 0; i < p.length; i += 1) {
const left = Number(p[i]);
const right = Number(q[i]);
const delta = left - right;
sum += delta * delta;
}
return Math.sqrt(sum);
}