方法一 个人方法:
没啥好说的,循环取n的最后一位就行:
var subtractProductAndSum = function(n) {
var mulSum=n%10,addSum=n%10
n=Math.floor(n/10)
while(n/10>0){
let num=n%10
mulSum*=num
addSum+=num
n=Math.floor(n/10)
}
return mulSum-addSum
};
消耗时间和内存情况:
方法二 eval():
这是一种非常有意思的方法:
var subtractProductAndSum = function(n) {
let arr = (n+'').split('')
let a=eval(arr.join('*'))
let b=eval(arr.join('+'))
return a-b
};
先把数值类型的n转为字符串再转为数组
把数组拼接成乘法和加法算式模式的字符串
通过eval()函数将字符串转为javascript代码并执行就会返回计算结果
JavaScript的eval()函数主要用于执行字符串中的JavaScript代码。它可以把字符串当作JavaScript表达式一样去执行,从而动态地执行字符串中的JavaScript代码,并返回执行结果。
eval()函数的使用场合主要包括:当我们预先不知道要执行什么语句,只有当条件和参数给出时才知道执行什么语句的时候。例如,如果我们要做一个function,功能是输入网页中两个对象的名称,然后程序就将这两个对象的值联接起来输出,这时候就可以使用eval()函数来实现这个功能。
需要注意的是,eval()函数虽然功能强大,但使用不当可能会导致安全问题,例如执行恶意代码等,因此使用时需要谨慎。
消耗时间和内存情况: