javascript - Javascript 中 BigInt 类型的 Math.max 和 Math.min 的替代方案

标签 javascript bigint

在 Javascript 中:Math.max 和 Math.min 不适用于 BigInt 类型。

例如:

> Math.max(1n, 2n)
Thrown:
TypeError: Cannot convert a BigInt value to a number
    at Math.max (<anonymous>)
>

是否有在 BigInts 上执行这些操作的内置函数?

最佳答案

怎么样

const bigIntMax = (...args) => args.reduce((m, e) => e > m ? e : m);
const bigIntMin = (...args) => args.reduce((m, e) => e < m ? e : m);

如果你想要两个
const bigIntMinAndMax = (...args) => {
  return args.reduce(([min,max], e) => {
     return [
       e < min ? e : min, 
       e > max ? e : max,
     ];
  }, [args[0], args[0]]);
};

const [min, max] = bigIntMinAndMax(
   BigInt(40),
   BigInt(50),
   BigInt(30),
   BigInt(10),
   BigInt(20),
);

关于javascript - Javascript 中 BigInt 类型的 Math.max 和 Math.min 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61323821/

相关文章:

c# - 在不使用 BigInt 的情况下计算 2^1000 的总和

javascript - 如何选择在canvas2d中制作字形纹理的字体大小

javascript - 如何使用javascript将Excel工作簿保存到当前用户桌面?

javascript - 通过表单提交在 HTML5 canvas 上保存框的坐标

javascript - 对使用 Google 电子表格维护/更新 Google 日历(包括自动更改颜色)的脚本进行故障排除

javascript - 如何在纯 JavaScript(不是 Node.js)中生成一个范围内的随机 BigInt?

postgresql - Citus 上的主键(UUID、序列)策略

android - 如何将 openssl RSA key 转换为 Android 引导加载程序 RSA key 格式?

julia - 理解 BigInt 的使用

javascript - 为什么等时 d3 转换会不同步?