Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用tostring和number方法的数字总和_Javascript_Tostring - Fatal编程技术网

Javascript 使用tostring和number方法的数字总和

Javascript 使用tostring和number方法的数字总和,javascript,tostring,Javascript,Tostring,有人能解释一下我在这个问题上做错了什么吗?我想使用toString和Number方法添加num变量的总和。我首先将num转换为字符串num='12345'。然后我循环遍历字符串,将其转换为一个数字,并将其添加到总和中 var num = 12345; function sumDigits(num) { var sumOfDigits = 0; num.toString(); for(var i = 0; i < num.length; i++){

有人能解释一下我在这个问题上做错了什么吗?我想使用
toString
Number
方法添加
num
变量的总和。我首先将
num
转换为字符串
num='12345'
。然后我循环遍历字符串,将其转换为一个数字,并将其添加到总和中

var num = 12345;

function sumDigits(num) {     
  var sumOfDigits = 0;     
  num.toString();     
  for(var i = 0; i < num.length; i++){    
    sumOfDigits += Number(num[i]);     
  }     
  return sumOfDigits;    
}
var num=12345;
函数sumdights(num){
var sumOfDigits=0;
num.toString();
对于(var i=0;i
您没有将
num.toString()的结果分配给任何对象

var num=12345;
函数数(num){
var sumOfDigits=0;
num=num.toString();
对于(变量i=0;iconsole.log(sumdights(num))您没有将
num.toString()
的结果分配给任何对象

var num=12345;
函数数(num){
var sumOfDigits=0;
num=num.toString();
对于(变量i=0;i已更新:

您可以使用split、map和reduce来拆分数组,将其映射到整数,然后使用reduce函数对整数求和

如果要将解析移到reduce中,可以删除映射,但我喜欢将步骤分开

var num=12345;
函数sumdights(num){
var sumOfDigits=num
.toString()
.拆分(“”)
.map(函数(n){return parseInt(n);})
.减少(功能(acc、val){
返回acc+val;
}, 
0
);
返回数字;
}
var总和=总和(num);
控制台日志(总和)
已更新:

您可以使用split、map和reduce来拆分数组,将其映射到整数,然后使用reduce函数对整数求和

如果要将解析移到reduce中,可以删除映射,但我喜欢将步骤分开

var num=12345;
函数sumdights(num){
var sumOfDigits=num
.toString()
.拆分(“”)
.map(函数(n){return parseInt(n);})
.减少(功能(acc、val){
返回acc+val;
}, 
0
);
返回数字;
}
var总和=总和(num);

console.log(sum)
我相信您可以使用这个:

    var num = 12345;
    function sumDigits(num) {
    //empty variable
    var str;
    //check type of the incoming value
    (typeof num == "string") ? str = num : str = num.toString();
    //this is the same with above if you don't know how to use short handed if else 
    /*
        if(typeof num == "string"){
            str = num;
        } else {
            str = num.toString();
        }
    */
    //Array's split Method and a variable which u have create already
    var arr = str.split(''), sumOfDigits = 0;
    for(var i in arr){
        //You should use parseInt() method.
        sumOfDigits += parseInt(arr[i]);
    }
    //return the sum of the digits
    return sumOfDigits;
};
console.log(sumDigits(num));

如果您将来遇到问题,请先搜索一下,然后在此处写下:)

我相信您可以使用这个:

    var num = 12345;
    function sumDigits(num) {
    //empty variable
    var str;
    //check type of the incoming value
    (typeof num == "string") ? str = num : str = num.toString();
    //this is the same with above if you don't know how to use short handed if else 
    /*
        if(typeof num == "string"){
            str = num;
        } else {
            str = num.toString();
        }
    */
    //Array's split Method and a variable which u have create already
    var arr = str.split(''), sumOfDigits = 0;
    for(var i in arr){
        //You should use parseInt() method.
        sumOfDigits += parseInt(arr[i]);
    }
    //return the sum of the digits
    return sumOfDigits;
};
console.log(sumDigits(num));

如果您将来遇到问题,请先搜索一点,然后在此处写入:)

您需要使用charAt,因为它是字符串,而不是数组。如果执行num.toString().split(“”),则可以实现该功能;您没有保存,
toString()
的结果,您需要使用charAt,因为它是字符串,而不是数组。如果执行num.toString().split(“”),则可以实现该功能;您没有保存的结果是,
toString()
字符串的括号表示法是ECMAScript 5的一项功能。字符串的括号表示法是ECMAScript 5的一项功能。它得到了广泛的支持。