有人可以帮我修复我的代码吗? 该函数类似于Eval函数,但添加了√但它不起作用
function Eval(n) {
var a = n.split("√").length - 1;
var b = n.split("√").length;
var c = a.replace("√" + d, e);
var d = parseFloat(b[1]);
var e = Math.sqrt(d);
while (a != 0) {
b();
d();
e();
c();
return;
}
}
document.write(Eval("64+√68+32"));
答案 0 :(得分:0)
您的代码存在一些问题并按您的方法进行,我已将代码更新为以下内容。请看,它是否有帮助!
请注意,我假设您要根据函数的名称来评估表达式。此外,还有其他假设,例如只有一个平方根表达式,所有操作都是加法的。
function Eval(n) {
var b = n.split("√"); // you were expecting b to be an array
var a = b.length - 1; // you can use b here
var d = parseFloat(b[1]); // d should have been assigned before using in c
var e = Math.sqrt(d);
var c = n.replace("√" + d, e);
return c.split("+").reduce(function(a, b) {
return a + parseFloat(b); // sum up all the values
}, 0);
}
console.log(Eval("64+√68+32"));

您可以尝试调整here
答案 1 :(得分:0)
function eval(n){
var numbers = n.split('+'); // split the exepression with the + operator
var result = 0; // initaliaze the result to 0
for(number of numbers){ // for each number of numbers
if(number.indexOf('√') !== -1){ // if the number contains sqrt
number = +number.substring(1, number.length); // cast to int
result += Math.sqrt(number);
}else{
number = +number; // cast string to int, NaN if not possible
result += number;
}
}
return result;
}
此功能适用于您的添加。 并不是说这只是一个重点,而不是最好的方式,我试图更全面地看到你是javascript的初学者