Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用slice();实现算术运算的方法_Javascript - Fatal编程技术网

Javascript 使用slice();实现算术运算的方法

Javascript 使用slice();实现算术运算的方法,javascript,Javascript,我的目标是使用单个输入来收集数字和字符串,然后使用它来确定数学运算。 例如,我解析值,例如√64打算求64的平方根。知道这不是有效的javascript,所以我决定获取结果为[0]的第一个字符;那是√ 然后用result.slice1将剩余的值切掉;也就是64,那么当结果[0]=√ 则Math.sqrtsliceVal为true。这看起来很完美,在移动编辑器中运行良好,但在任何web浏览器中都无法运行 function actn() { var input = document.get

我的目标是使用单个输入来收集数字和字符串,然后使用它来确定数学运算。 例如,我解析值,例如√64打算求64的平方根。知道这不是有效的javascript,所以我决定获取结果为[0]的第一个字符;那是√ 然后用result.slice1将剩余的值切掉;也就是64,那么当结果[0]=√ 则Math.sqrtsliceVal为true。这看起来很完美,在移动编辑器中运行良好,但在任何web浏览器中都无法运行

function actn() {
    var input = document.getElementById("input").value;
    var display = document.getElementById("display");
    var result = input.toString();
    var firstVal = result[0];


    if (firstVal == "√") {
        var sliceVal = result.slice(1);
        display.innerHTML =  Math.sqrt(sliceVal);
    }
}

我不知道为什么它没有在您的终端运行,但它完全按照您的要求工作,我测试了上述代码:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
function actn() {
    var input = document.getElementById("test").value;
    var result = input.toString();
    var firstVal = result[0];
    if (firstVal == "√") {
        var sliceVal = result.slice(1);
        alert(Math.sqrt(sliceVal));
    }
    alert("No match found");
}
</script>
</head>
<body>

<input type="text" id="test" />
<button type="button" onclick="actn()">Test</button>

</body>
</html>

检查ASCII值而不是字符比较应该有效

  <html>
    <body>
      <input type="text" id="input" />
      <button type="button" id="sqrRoot">Square Root</button>
      <h1 id="display"></h1>
      <script>
        function actn() {
            var input = document.getElementById("input").value;
            var display = document.getElementById("display");
            var result = input.toString();
            var firstVal = result[0];
            /* Ascii value for √ is 8730 */
            if (firstVal.charCodeAt(0) === 8730) {
                var sliceVal = result.slice(1);
                display.innerHTML = Math.sqrt(sliceVal);
            }
        }
        document.getElementById("sqrRoot").addEventListener("click", function () {
            actn();
        });
    </script>
   </body>
 </html>

好的,我看到您默认返回了函数,但我希望用户输入自己选择的值。是的,ASCII值检查按预期执行。现在更清楚的是,使用ASCII值是比较符号的有效方法