Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.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 - Fatal编程技术网

在javascript中分别对数字的每一位进行平方运算

在javascript中分别对数字的每一位进行平方运算,javascript,Javascript,我想知道我的代码有什么问题,它总是返回输入数字的每个数字的数组,但不是我想要的平方结果。 代码如下: 函数平方位数(num){ 如果(数值>=10){ 让digits=num.toString().split(“”); 让realdights=digits.map(数字); realdights.forEach(数字=>{ 返回编号*编号 }); 返回实数字; }否则{ 返回num*num } }您的主要问题是没有将forEach()方法中的数字平方保存回数组中。只需对代码进行一次简单的修改即

我想知道我的代码有什么问题,它总是返回输入数字的每个数字的数组,但不是我想要的平方结果。 代码如下:

函数平方位数(num){
如果(数值>=10){
让digits=num.toString().split(“”);
让realdights=digits.map(数字);
realdights.forEach(数字=>{
返回编号*编号
});
返回实数字;
}否则{
返回num*num
}

}
您的主要问题是没有将
forEach()
方法中的数字平方保存回数组中。只需对代码进行一次简单的修改即可:

函数平方位数(num)
{
如果(数值>=10)
{
让digits=num.toString().split(“”);
让realdights=digits.map(数字);
realdights.forEach((number,idx)=>realdights[idx]=number*number);
返回实数字;
}
其他的
{
返回num*num;
}
}
控制台日志(平方数字(3));
控制台日志(平方位数(33))
.as控制台{背景色:黑色!重要;颜色:石灰;}

.as console wrapper{max height:100%!important;top:0;}
这里的问题是从forEach返回不会修改原始数组。尝试将.map与新的输出变量一起使用,如下所示:

函数平方位数(num){
如果(数值>=10){
让digits=num.toString().split(“”);
让realdights=digits.map(数字);
让squaredDigits=realdights.map(number=>{
返回编号*编号
});
返回平方位数;
}否则{
返回num*num
}
}
squaredights=num=>{
如果(数值>=10){
返回num.toString().split(“”).map(n=>{
n=数字(n)| | 0;
返回n*n;
});
}否则{
返回num*num
}
}
控制台日志(平方数字(3));

控制台日志(平方位数(12123))
只想注意,你可以美化你的代码,你编写代码的方式很难阅读。
让平方=数字。map(Number)。map(x=>x*x)
@Alnitak:
map(Number)
可以安全地省略。@georg可以,但OP使用了它,根据我的经验,这是避免“WAT?!”的最好方法时刻是在最早的机会显式地将变量强制到预期的时间。我不介意使用显式的一元运算符来执行转换,但是我通过使用二进制运算符来使用隐式强制操作来画线。@ GTS考虑不使用<代码> < 10 < /代码>代码的特殊情况-它不仅在代码中创建重复,但是它也强制函数在这种情况下只返回一个数字,而不是一个数组。
Math.pow()
用于简单的整数平方运算@Alnitak我已经更新了我的代码,不使用
Math.pow()
neat,以前从未考虑过破坏输出的样式