2 回答

TA貢獻1851條經(jīng)驗 獲得超4個贊
怎么樣
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),
);

TA貢獻1757條經(jīng)驗 獲得超8個贊
經(jīng)過一番谷歌搜索后,答案似乎是否定的,Javascript 對此沒有內(nèi)置函數(shù)。
這是與內(nèi)置簽名匹配的 bigint 的 min 和 max 的實現(xiàn),除了它會為空列表引發(fā)錯誤(而不是返回 +/-Infinity,因為 BigInt 不能表示無窮大):
function bigint_min(...args){
if (args.length < 1){ throw 'Min of empty list'; }
m = args[0];
args.forEach(a=>{if (a < m) {m = a}});
return m;
}
function bigint_max(...args){
if (args.length < 1){ throw 'Max of empty list'; }
m = args[0];
args.forEach(a=>{if (a > m) {m = a}});
return m;
}
添加回答
舉報