Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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中为要在等式中使用的字母赋值_Javascript - Fatal编程技术网

在JavaScript中为要在等式中使用的字母赋值

在JavaScript中为要在等式中使用的字母赋值,javascript,Javascript,我正在用JavaScript编写一个应用程序,处理一系列简单的方程式。它主要是涉及从0到10的数字的加法,但字母X也需要可用:与数字10一样计数。这是我的一部分: <script type="text/javascript"> function updateround() { document.form.round01.value = (document.form.arrow01.value -0) + (document.form.arrow02.value

我正在用JavaScript编写一个应用程序,处理一系列简单的方程式。它主要是涉及从0到10的数字的加法,但字母X也需要可用:与数字10一样计数。这是我的一部分:

<script type="text/javascript">
    function updateround() {
        document.form.round01.value = (document.form.arrow01.value -0) + (document.form.arrow02.value -0) + (document.form.arrow03.value -0);
    }
</script>
<body>
    <center>
            <form name="form">
                <table>
                    <tr>
                        <td><input name="arrow01" style="width: 30px;" onChange="updateround()"></td>
                        <td><input name="arrow02" style="width: 30px;" onChange="updateround()"></td>
                        <td><input name="arrow03" style="width: 30px;" onChange="updateround()"></td>
                        <td><input name="round01" style="width: 30px;"></td>
                    </tr>
                </table>
            </form>
    </center>
</body>

函数updateround(){
document.form.round01.value=(document.form.arrow01.value-0)+(document.form.arrow02.value-0)+(document.form.arrow03.value-0);
}
如果你运行这个程序,你会得到4个输入字段:如果你在前三个字段中写下数字,然后单击其他地方,它们就会在第四个字段中相加

我要寻找的是如何使它,如果你输入字母X到前三个字段中的一个,应用程序将其用作等式中的10。例如,如果在前三个字段中输入X、9和9,则在第四个字段中得到28,如果输入X、X和6,则得到26,依此类推。另外,我应该将此代码放在应用程序的何处


可能需要提前感谢。

如果您想使用base 11系统,可以使用基数为11的
parseInt
。只有它需要
a
/
a
而不是
X
,因此您需要在执行以下操作之前使用替换:

parseInt(document.form.arrow01.value.replace(/x/gi, "a"), 11)
如果还想使用基数11进行输出,可以使用
toString
并再次替换:

result.toString(11).replace(/a/gi, "X");

这里要添加一个小的额外函数:

function val_or_x_from_object(obj) {
    if (obj.value == "x" || obj.value == "X") {
        return 10;  
    }
    else {
        val = parseFloat(obj.value);
        return (isNaN(val)? 0 : val);
    }
}

function updateround() {
        document.form.round01.value = val_or_x_from_object(document.form.arrow01) + 
           val_or_x_from_object(document.form.arrow02) + 
            val_or_x_from_object(document.form.arrow03);
    }