如何在javascript中将整个数组从字符串转换为整数/数字
How to convert a whole array from strings to integers/numbers in javascript
我需要让它不是1+1=11我的代码将返回1+1=2
<!DOCTYPE html>
<html>
<body>
<script>
var arr = [];
for (var i = 0; i < 7; i++) {
arr.push(prompt('Enter GTIN Digit ' + (i+1)));
}
alert('Full GTIN: ' + (arr [0]*3)+(+ arr [2]*3)+(arr [4]*3)+(arr [6]*3) + (arr [1])+(arr [3])+ (arr [5]) );
</script>
</body>
</html>
您只需要在prompt
:
+
(正加号)arr.push(+prompt('Enter GTIN Digit ' + (i+1)));
这将进行转换。
其次,您需要避免将其转换回alert
中的字符串。将整个计算放在括号内,否则第一个字符串将使所有+
作为字符串连接:
alert('Full GTIN: ' + (arr[0]*3+arr[2]*3+arr[4]*3+arr[6]*3+arr[1]+arr[3]+arr[5]));
或者,使用reduce
:
alert('Full GTIN: ' + arr.reduce((s, d, i) => s+(i%2?d:d*3), 0));
转换数组
对我来说,统一的+
解决方案似乎是最好的,但是如果——就像你在标题中所写的那样——你真的想首先构建字符串数组,然后转换值,那么使用这个语句:
arr = arr.map(Number);
评论
- 通过
prompt
要求重复输入是不友好的。用户不能中断该序列或返回。更好的是使用input
元素和number
类型。 - 您需要验证输入。一旦你有一个
NaN
而不是一个数字,或者输入由多个数字而不是一个数字组成,计算就不能正常工作,因此没有必要完成整个输入周期。
使用parseInt()
parseInt(1)+parseInt(1)
相关文章:
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 将JSON插入MongoDB中,自动转换字符串中的日期
- 以点表示法转换字符串以获取对象引用
- 在 JavaScript 中转换字符串 11/28/2014 11:00 AM 到现在
- 为什么在主干的字符串数组中转换字符串数组
- 如何简单地转换字符串
- AngularJS如何转换字符串“;yyyyMMdd”;迄今为止
- 如何防止htmlspecialchar(PHP)转换字符串中的整数
- 刷新Aurelia中的i18n转换字符串插值
- 发布时禁用转换字符串
- 转换字符串货币
- 在javascript ajax调用中转换字符串到数组
- 转换字符串包含时间到24小时的时间,我可以做数学与- jQuery
- IE javascript引擎在转换字符串到日期时呈现NaN
- 如何转换字符串“a,b,c,d……”成a.b (c, d . .);来执行
- 如何在javascript中转换字符串到日期格式
- 如何在嵌套数组中转换字符串数组
- 在javascript中转换字符串日期
- 转换字符串在印度格式的javascript
- Javascript转换字符串到数组的对象