当前位置: 首页 > 知识库问答 >
问题:

将负数转换为字符串,然后再转换回负数

裘兴思
2023-03-14
function sumDigits(num) {
  var newStr = num.toString();
  var result = 0;

  for(var i=0; i<newStr.length; i++) {
    result += Number(newStr[i]);
  }

  return result;
}

var output = sumDigits(-1148);
console.log(output); // --> -14

试图对这个问题中的各个数字求和。然而,当涉及负数时,函数就会分崩离析。这是因为当您使用toString()时,会将负号转换为NewStr中的值。例如,在本例中,newstr[0]==='-'。不管怎么说都是为了解决这个问题?最好使用Number()函数

共有2个答案

韩楷
2023-03-14

使用string()、array.prototype.reduce()、math.abs()、spread语法和三元运算符来获得所需的结果。

null

function sumDigits(num) {
  const number = Math.abs(num);
  return num >= 0
    ? [...String(number)].reduce((acc, n) => acc + parseInt(n), 0)
    : -1 * [...String(number)].reduce((acc, n) => acc + parseInt(n), 0);
}

const output1 = sumDigits(-1148);
console.log(output1); // --> -14
const output2 = sumDigits(1148);
console.log(output2); // --> 14
韶浩皛
2023-03-14

您可以使用绝对值,然后将符号应用于结果。

null

js lang-js prettyprint-override">function sumDigits(num) {
    var newStr = Math.abs(num).toString(),
        result = 0;

    for (var i = 0; i < newStr.length; i++) {
        result += Number(newStr[i]);
    }

    return (num > 0 || -1) * result;
}

var output = sumDigits(-1148);
console.log(output); // --> -14
 类似资料:
  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字

  • 标题说明了一切: null 编辑:工作示例要简单得多(多亏了@T.S.): 谢谢!

  • 问题内容: 我在这里有点麻烦 我正在尝试将numpy.ndarray转换为字符串,我已经这样做了: 它有效,但是我想知道是否可以将其转换回numpy.ndarray。 最好的方法是什么? 我正在使用numpy 1.8.1 上下文:目标是将numpy.ndarray作为消息发送到Rabbitmq(pika库) 问题答案: 您可以使用此方法: 对不起,我的回答很简短,评论不够。请记住声明数据类型,否则

  • 有人能帮助我吗? 我正在编写客户端-服务器应用程序。服务器和客户端与websockets连接。服务器的管道: 客户端的管道: 这个应用程序就像一个代理服务器,从外部获取httprequest,然后通过websockets发送给客户端。客户端接收它并将其发送到修改后的指定url,接收响应并通过websockets将其发送回服务器。服务器收到此响应,并将数据写入请求它的通道。 目前的主要问题是,将Ht

  • 问题内容: 是否可以将字符串转换为字节数组,然后在Java或Android中将其转换回原始字符串? 我的目标是将一些字符串发送到微控制器(Arduino)并将其存储到EEPROM(仅1 KB)中。我尝试使用MD5哈希,但它似乎只是一种单向加密。我该怎么办? 问题答案: 我建议使用字符串的成员,但 使用显式编码 : 通过使用一种显式编码(以及一种支持所有Unicode的编码),您可以避免仅调用等问题

  • 我有一个node.js readstream,它发出一个缓冲区,并使用toString()函数将缓冲区转换为字符串,之后,当我试图通过JSON.parse()函数将字符串转换为JSON时,它会抛出解析错误。 有没有最好的方法将缓冲区转换为字符串,然后将字符串转换为JSON? JSON字符串如下所示, [{“data1”:1487328824948,“encrypt”:false,“version”