/**
* 计算数组中的最小值和最大值。
*
* 该函数的时间复杂度为 `O(n)`,即线性时间,与数组的长度成正比。
*
* @param {Array<number>} x 包含一个或多个数据点的样本
* @returns {Array<number>} 最小值和最大值
* @throws {Error} 如果数组 x 的长度小于1
* @example
* extent([1, 2, 3, 4]);
* // => [1, 4]
*/
function extent(x) {
if (x.length === 0) {
throw new Error("extent 函数至少需要一个数据点");
}
let min = x[0];
let max = x[0];
for (let i = 1; i < x.length; i++) {
if (x[i] > max) {
max = x[i];
}
if (x[i] < min) {
min = x[i];
}
}
return [min, max];
}
export default extent;