Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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中将数字中的各个数字相乘_Javascript_Arrays_Function - Fatal编程技术网

在JavaScript中将数字中的各个数字相乘

在JavaScript中将数字中的各个数字相乘,javascript,arrays,function,Javascript,Arrays,Function,我正在尝试制作一个程序,将数字中的数字相乘。所以583应该是5*8*3=120 它没有按预期工作,只是返回输入的编号 我怎样才能修好它 代码如下: 函数持久性(num){ //给我打电话 numString=num.toString(); numArray=numString.split().map(函数(t){ 返回parseInt(t) }); 功能减速机(theNumArray){ 设sum=1; 对于(变量i=0;i

我正在尝试制作一个程序,将数字中的数字相乘。所以
583
应该是
5*8*3=120

它没有按预期工作,只是返回输入的编号

我怎样才能修好它

代码如下:

函数持久性(num){
//给我打电话
numString=num.toString();
numArray=numString.split().map(函数(t){
返回parseInt(t)
});
功能减速机(theNumArray){
设sum=1;
对于(变量i=0;i持久性(485)您不需要拆分字符串,只需按字符编号引用字符即可。对于4*8*5=160的示例,这似乎很有效

另一种方法(在ECMAScript 5中介绍)是将字符串视为 一种类似数组的对象,其中单个字符对应于 数值索引

函数持久性(num){
numString=num.toString();
设sum=1;
对于(变量i=0;i持久性(485)您只需在
拆分(“”)内部进行更改

演示

函数持久性(num){
//给我打电话
numString=num.toString();
numArray=numString.split(“”).map(函数(t){
返回parseInt(t)
});
功能减速机(theNumArray){
设sum=1;
对于(变量i=0;i

.as console wrapper{max height:100%!important;top:0;}
您可以将字符串拆分为空字符串,以获取单个数字。然后将所有字符串转换为一个数字(如果需要)

函数减速机(numarray){
var i,总和=1;
对于(i=0;iconsole.log(持久性(485))假设num为正整数:

    function persistence(num) {
    var ans=1;    
    while( num!==0){
            ans=ans*(num-Math.floor(num/10)*10);
            num=Math.floor(num/10);

        }
        console.log(ans);
    }

    persistence(123);
这是基于(num Math.floor(num/10)*10)提取最低有效位。比如说

123-数学楼层(123/10)*10

123-12*10

123-120

三,

将num减少一位数,再除以10,依此类推。 您不需要字符串。

根据split方法,将根据输入产生不同的结果(明显正确?):

无分隔符->如果不将分隔符参数传递给split方法,则生成的数组将包含一个由整个字符串组成的元素

因此,基本上从这里开始:

numString.split()

您将得到一个包含字符串(您的数字)的数组,该数组应更改为:

numString.split(“”)

因此,您的整个代码应该如下所示:

 function persistence(num) {
    numString = num.toString();
    numArray = numString.split().map(function(t) {
       return parseInt(t)
    });


 function reducer(theNumArray) {
     let sum = 1;
     for (var i = 0; i < theNumArray.length; i++) {
         sum = sum * theNumArray[i];
     }
     return sum;
 }
 newNum = reducer(numArray);

 console.log(newNum);
};

persistence(485);
函数持久性(num){
numString=num.toString();
numArray=numString.split().map(函数(t){
返回parseInt(t)
});
功能减速机(theNumArray){
设sum=1;
对于(变量i=0;i
“485.split()==[“485”]
使用reduce可复制真正干净的溶液。
num Math.floor(num/10)*10
可能只是
num%10