使用Javascript-toString()、parseInt()等制作加法函数
Making a Addition function using Javascript - toString(), parseInt(), etc
我是第一次学习Javascript的新生。这一次,我试图更好地理解将数字转换为字符串、将它们存储在数组中、将它们转换回数字以及加法的概念。
在这项作业中,我试图编写一个函数,它将一个数字的各个数字相加。
例如,函数将取(95)并返回14。或者给定(135),则返回9。
到目前为止,我得到的是:
var addDigits = function(num) {
var newNum = num.toString();
newNum = newNum.split('');
var sum = 0;
var thirdNum = newNum.forEach(function(x) {
parseInt(x);
sum + x };
};
我完全知道这不是一个很好的代码,但有人能给我一些提示吗?我应该使用parseInt
还是Number
?
您非常接近。不过没什么。array.forEach
不返回任何内容。它用于创建副作用(增加sum
将被视为传递给forEach
的函数的副作用)。因此,将forEach
设置为变量并不能完成任何任务。parseInt
确实返回了一些内容,因此需要将其设置为一个变量。您还想将sum
乘以解析的整数加上您已经得到的和。如果您愿意,可以查看+=
运算符。最后,您需要从函数本身返回一个值!事实上,如果你做了var added = addDigits(123)
,那么added
就是undefined
。所以用return
语句来结束它。
在你掌握了这一点之后,我建议研究array.reduce
来代替array.forEach
,因为它非常适合这样的问题。
var addDigits = function(string) {
newNum = string.split('');
var sum = 0;
for(var i = 0 ; i < newNum.length ; i++) sum += parseInt(newNum[i]);
return sum;
};
console.log(addDigits("1234"));
也许这会更好:
function getDigitsSum(number) {
var charArray = (number + '').split('');
var sum = 0;
charArray.forEach(function(item) {
sum += parseInt(item)
})
return sum;
}
Number()
执行类型转换,而parseInt()
执行解析
parseInt()和Number()之间有什么区别
在这种情况下,这没有什么区别,因为字符串是正确的整数
以下是我的做法。
var addDigits = function(num) {
var newNum = num.toString().split('');
var sum = newNum.map(Number).reduce((prev, curr) => prev + curr);
return sum;
};
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
假设您的输入始终是一个整数字符串,请考虑以下函数:
var addDigits = function(strInt) {
var int = function(x) {
return parseInt(x,10) //10 is the radix
}
return strInt.split('').map(int).reduce(function(a,b){return a+b});
}
绑定到var int
的函数将确保所提供的整数字符串被解析为其相应的基数10整数(注意type
中的差异,可以使用Javascript的内置typeof()
函数进行验证)。返回将首先对字符串.split
,对给定字符串中的每个值.map
,对int
函数,然后对累积值应用.reduce
中的任何函数-在这种情况下,只需对数组的每个成员进行加法。
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- Javascript parseInt 函数不起作用
- jQuery JavaScript 有一个像 parseInt for Boolean 这样的函数
- 函数 parseInt (1/10000000) 返回 1.为什么
- 使用文本输入和parseInt的简单JS函数,返回NaN
- 使用 parseInt() 函数和带有三元运算符的基数参数
- BMI 计算器希望有一个 parseInt() 函数
- 使用Javascript-toString()、parseInt()等制作加法函数
- Javascript没有使用parseInt函数添加两个字符串数字
- 是否有类似parseInt()或parseFloat()的函数,但带有字母
- TypeError: self.parent.parent.context.parseInt不是函数
- 如何确保parseInt()函数不会返回意外的结果
- 在对象中找不到函数parseInt
- 函数在不使用parseInt的情况下求和以2为基数的数字的值
- parseInt()导致javascript函数的返回值是预期结果的0.77倍,基数指定为十进制