中位数

95 阅读1分钟

/**

  • 中位数
  • @param {Array} arr 数据
  • @param {Boolean} sorted 是否已经排序
  • @returns {Number} */
export function median(arr, sorted = false) {
  if (!arr.length) return 0;
  const mid = Math.floor(arr.length / 2),
    nums = sorted ? arr : [...arr].sort((a, b) => a - b);
  return arr.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;
}