JAVASCRIPT有人可以修复我的代码吗?

时间:2017-06-29 09:30:35

标签: javascript html

有人可以帮我修复我的代码吗? 该函数类似于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"));

2 个答案:

答案 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的初学者