迭代结果的总和
Sum of Iteration Result?
我写了一个程序,用于将基数 2 的数字转换为基数 10 的数字。这是我的代码片段:
function translateToBaseTen()
{
var inputNumber = document.getElementById('BaseTwoNumberButton').value;
var i = 0;
var text = "";
var text2 = "";
var lengthOne = inputNumber.length;
var j = (lengthOne-1);
while (i < 12 && lengthOne < 12 )
{
var resolved = (inputNumber[i] * Math.pow(2,j));
text += "<br>Number " + (i+1) + " = " + inputNumber[i];
text2 += "<br>Number " + (i+1) + " ,Value on base ten = " + resolved + " /// Description :==> " + " ( " + inputNumber[i] + " * (2^" + j + ") )";
i++;
j--;
if (inputNumber[i] === undefined) {
break;
}
}
document.getElementById('demo').innerHTML = text;
document.getElementById('demo2').innerHTML= text2;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Base Arithmetic 1.0</title>
</head>
<body>
<p id="demo">a</p><br>
<p id="demo2">b</p><br>
<input type="number" value="0" id="BaseTwoNumberButton" maxlength="2"><br><br>
<input type ="button" value="Resolve" onClick="translateToBaseTen()"><br>
</body>
</html>
当我输入"0101"时,结果通常是:
Number 1 ,Value on base ten = 0 /// Description :==> ( 0 * (2^3) )
Number 2 ,Value on base ten = 4 /// Description :==> ( 1 * (2^2) )
Number 3 ,Value on base ten = 0 /// Description :==> ( 0 * (2^1) )
Number 4 ,Value on base ten = 1 /// Description :==> ( 1 * (2^0) )
问题是,我需要获得 (0,4,0,1) 的总和以获得真正的转换结果。可以这样做吗?
创建一个变量 sum 并添加在循环内解析的 sum +=。
您可以在 while 循环之前将整体值存储为变量,每次循环时添加基数 10 值,并在其他所有内容之后打印输出。查看下面的变量输出。
function translateToBaseTen()
{
var inputNumber = document.getElementById('BaseTwoNumberButton').value;
var i = 0;
var text = "";
var text2 = "";
var lengthOne = inputNumber.length;
var j = (lengthOne-1);
var output = 0;
while (i < 12 && lengthOne < 12 ) {
var resolved = (inputNumber[i] * Math.pow(2,j));
text += "<br>Number " + (i+1) + " = " + inputNumber[i];
text2 += "<br>Number " + (i+1) + " ,Value on base ten = " + resolved + " /// Description :==> " + " ( " + inputNumber[i] + " * (2^" + j + ") )";
//Add value on base ten to output
output += resolved;
i++;
j--;
if (inputNumber[i] === undefined) {
break;
}
}
//Print output here:
text2 + = "<br>Output: " + output;
}
你可以这样做
var total = 0;
total += resolved;
在这里工作 JSFiddle https://jsfiddle.net/xLwr21Lj/1/
相关文章:
- 从JSON API结果迭代时未定义
- 迭代 JSON 文件并且未在 Javascript 中正确返回结果
- Javascript表排序工作得很好,但对所有索引进行迭代会得到不同的结果
- OrientDB Javascript 服务器端函数内的结果迭代
- 如何将 for 循环的每次迭代的结果存储到数组中 (Javascript)
- 迭代结果的总和
- 如何在MongoDB-Shell中正确迭代搜索结果
- 如何在执行数组迭代时避免中间结果
- 用于循环行为的 Javascript 每次迭代输出相同的结果
- 使用 Node.jS 驱动程序在 MongoDB 中迭代多个集合并比较结果
- 在jade[node-mysql]中迭代mysql查询结果
- 如何在$.each()循环中保持$.ajax()异步,但对每次迭代的结果做出反应
- Angularjs:无法迭代或从服务结果中获取结果
- 循环的CasperJS为每次迭代生成相同的结果
- AngularJs:迭代键值对的奇怪结果
- 如何迭代jquery选择器的结果
- 如何迭代生成器函数的结果
- 如何在Nightwatch中迭代querySelectorAll结果
- 在不同数据上使用“tr”元素的undercore模板迭代会给出错误的结果
- Angular-多次承诺和迭代-如何获得结果