我的计算器一次只能操作2个数字。在按=之前,我不确定如何使用不同的运算符链接多于2个数字。任何人都可以暗示如何做到这一点吗? (下面是我的javascript代码)
$(document).ready(function(){
var testNumLength = function(number) {
if (number.length > 9) {
totaldiv.text(number.substr(number.length-9,9));
if (number.length > 15) {
number = "";
totaldiv.text("Err");
}
}
};
var entry = "";
var current = ""; //after operator is entered
var operator = "";
var res = "";
var totaldiv = $("#total");
totaldiv.text("0");
$("#numbers a").not("#clear,#clearall").click(function(){
entry += $(this).text();//take the text of the numbers when clicked and append it to var entry
//display input1 on screen
totaldiv.html(entry);
testNumLength(entry);
})
$("#clear,#clearall").click(function(){
entry = "";
if ($(this).attr("id") === "clearall"){
current = "";
}
totaldiv.text("0");
})
$("#operators a").click(function(){
//append operators to var operator
operator = $(this).text();
current = entry;
entry = "";
})
$("#decimal").click(function(){
//var numOfDecs = 0;
for (var i=0;i<entry.length;i++){
if (entry.indexOf(".")== -1){
entry += ".";
// numOfDecs += 1;
}
}
totaldiv.text(entry);
testNumLength(entry);
})
$("#equals").click(function(){
var result = eval(current + operator + entry);
entry = result;
totaldiv.html(result.toFixed(2));
})
})
答案 0 :(得分:0)
要开始链接内容,您需要支持更动态的数据结构,而不是将运算符和2个数字保存为自己的字段。
你可以有一个包含所有数字和操作数的单一条目数组,然后循环通过它们来计算(忽略操作顺序)
这样的数组看起来像下面的样本数据:
[50, 'times', 25, 'plus', 10]
然后你可以遍历它以确定第一个操作的答案(元素0,1,2:50x25),然后是下一个答案加上10,依此类推。