javascript - 有一个大整数数组需要返回一个数组,该数组将数组表示的值加 1

标签 javascript arrays

出于学习目的。有一个大整数数组需要返回一个数组,该数组将数组表示的值加 1。

尝试将数组转换为整数,但使用后 parseInt('9223372036854775807', 10) 收到 9223372036854776000,而不是 9223372036854775807 这里出了什么问题?

var arr = [ 9, 2, 2, 3, 3, 7, 2, 0, 3, 6, 8, 5, 4, 7, 7, 5, 8, 0, 7 ];

function upArray(arr){

  var numb = arr.join('');
  numb = parseInt(numb, 10);

  var result = numb + 1;

  console.log(result);
  result = result.toString(10).split('').map(Number);
  return result;
}

最佳答案

您超出了 JavaScript 数字类型的容量

IEEE-754 double 浮点(JavaScript 使用的数字类型)无法精确表示所有数字

除了 Number.MAX_SAFE_INTEGER + 1 (9007199254740992) 之外,IEEE-754 浮点格式无法再表示每个连续的整数

此外,除非您希望使用与十进制不同的基数,否则您不需要对 parseInt 使用第二个参数

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

如果您使用带有数字数组的代码,当加入时在此限制内,您的代码将起作用

var arr = [ 9, 2, 2, 3, 3, 7, 2, 0, 3, 6, 8, 5 ];
function upArray(arr){

    var numb = arr.join('');
    numb = parseInt(numb);
    var result = numb + 1;
    console.log(result)
    result = result.toString(10).split('').map(Number);
    return result;
}

console.log(upArray(arr))

关于javascript - 有一个大整数数组需要返回一个数组,该数组将数组表示的值加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54114521/

相关文章:

c++ - Const 数组从另一个 const 数组初始化

javascript - Nagios JSON 查询返回不正确的值

javascript - React-Native 应用程序中来自 Babel 的未知选项错误

c# - 为什么 DataContractJsonSerializer 和 toSource 产生不同的结果?

javascript - 我们可以在一个 slim 的组件中编写 typescript 吗?

ios - NSMutablearray 从最后一个元素而不是第一个开始打印

javascript - 删除 Javascript 数组中的字符串时遇到问题

javascript - 在新值可用之前触发输入上的 Drop 事件

c++ - C++将数字和逗号的char数组转换为整数列表?

C++容器/数组/元组一致访问接口(interface)