如何拆分文本字段输入以便计算数据的中位数、众数平均值和标准差?
How can I spilt a text field input so I can calculate median, mode mean and Standard Deviation of the data?
我想计算 javascript 中数据输入的中位数、众数、均值和标准差,但我不能将我的输入溢出到文本字段中,所以它会像这样 1 2 3 4 5 12345.
我试过分割法,但好像不行。
function mean(values) {
var total = 0,
i, results;
for (i = 0; i < values.length; i += 1) {
total += values[i];
}
results = total / values.length;
document.getElementById("meanOutput").innerHTML = results;
}
function mode() {
document.getElementById("modeOutput").innerHTML = "Fahad!";
}
function median() {
document.getElementById("medianOutput").innerHTML = "Nasser";
}
function stdv() {
document.getElementById("stdvOutput").innerHTML = "Alqahtani";
}
Mean: <input type="text" id="meanText"> Median:
<input type="text" id="medianText"> Mode:
<input type="text" id="ModeText"> Standard Deviation of the data:<input type="text" id="STDV">
<p id="meanOutput"></p>
<p id="modeOutput"></p>
<p id="medianOutput"></p>
<p id="stdvOutput"></p>
<button onclick="mean(document.getElementById('meanText').value); median(); mode(); stdv();">Calculate</button>
我希望文本字段输入接受 1 2 3 4 5 并计算它而不是显示 NaN
。
尝试以下操作。这个问题在某种程度上与类型强制有关。您正在接收一个字符串作为参数,然后迭代字符串的每个字符和 "adding" 它们(这意味着您正在连接字符,而不是添加数字。要添加数字,您必须首先解析它们parseInt()
)。最后,当你做除法时,JS 自动将你的字符串 'transforms' 转换为数字(这只发生在除法和乘法上。当加法或减法时,JS 会做相反的事情,将数字转换为字符串)。当您组合多种数据类型时,就会发生这种奇怪的事情。
function mean(values) {
var total = 0,
i, results;
var onlyNumbers = values.split(/\D/);
for (i = 0; i < onlyNumbers.length; i += 1) {
total += parseInt(onlyNumbers[i]);
}
results = total / onlyNumbers.length;
document.getElementById("meanOutput").innerHTML = results;
}
function mode() {
document.getElementById("modeOutput").innerHTML = "Fahad!";
}
function median() {
document.getElementById("medianOutput").innerHTML = "Nasser";
}
function stdv() {
document.getElementById("stdvOutput").innerHTML = "Alqahtani";
}
Mean: <input type="text" id="meanText"> Median:
<input type="text" id="medianText"> Mode:
<input type="text" id="ModeText"> Standard Deviation of the data:<input type="text" id="STDV">
<p id="meanOutput"></p>
<p id="modeOutput"></p>
<p id="medianOutput"></p>
<p id="stdvOutput"></p>
<button onclick="mean(document.getElementById('meanText').value); median(); mode(); stdv();">Calculate</button>
问题涉及字符串类型到整数的类型转换,您需要解析输入的数字以便进行数学计算,并且
类型转换前
你需要将你的输入(用 space 分隔的不同数字,例如 22 23 24)转换为一个子字符串数组,这可以使用 javascript 中的拆分函数来实现。特别是在您的情况下,您需要根据输入中的 spaces 进行拆分。
在您的代码中休息一切都很好。
希望这对您有所帮助。
代码更改只会
function mean(values) {
var total = 0,
i, results;
var arraySubstrings = values.split(' ');
for (i = 0; i < arraySubstrings.length; i += 1) {
total += parseInt(arraySubstrings[i]);
}
results = total / arraySubstrings.length;
document.getElementById("meanOutput").innerHTML = results;
}
我想计算 javascript 中数据输入的中位数、众数、均值和标准差,但我不能将我的输入溢出到文本字段中,所以它会像这样 1 2 3 4 5 12345.
我试过分割法,但好像不行。
function mean(values) {
var total = 0,
i, results;
for (i = 0; i < values.length; i += 1) {
total += values[i];
}
results = total / values.length;
document.getElementById("meanOutput").innerHTML = results;
}
function mode() {
document.getElementById("modeOutput").innerHTML = "Fahad!";
}
function median() {
document.getElementById("medianOutput").innerHTML = "Nasser";
}
function stdv() {
document.getElementById("stdvOutput").innerHTML = "Alqahtani";
}
Mean: <input type="text" id="meanText"> Median:
<input type="text" id="medianText"> Mode:
<input type="text" id="ModeText"> Standard Deviation of the data:<input type="text" id="STDV">
<p id="meanOutput"></p>
<p id="modeOutput"></p>
<p id="medianOutput"></p>
<p id="stdvOutput"></p>
<button onclick="mean(document.getElementById('meanText').value); median(); mode(); stdv();">Calculate</button>
我希望文本字段输入接受 1 2 3 4 5 并计算它而不是显示 NaN
。
尝试以下操作。这个问题在某种程度上与类型强制有关。您正在接收一个字符串作为参数,然后迭代字符串的每个字符和 "adding" 它们(这意味着您正在连接字符,而不是添加数字。要添加数字,您必须首先解析它们parseInt()
)。最后,当你做除法时,JS 自动将你的字符串 'transforms' 转换为数字(这只发生在除法和乘法上。当加法或减法时,JS 会做相反的事情,将数字转换为字符串)。当您组合多种数据类型时,就会发生这种奇怪的事情。
function mean(values) {
var total = 0,
i, results;
var onlyNumbers = values.split(/\D/);
for (i = 0; i < onlyNumbers.length; i += 1) {
total += parseInt(onlyNumbers[i]);
}
results = total / onlyNumbers.length;
document.getElementById("meanOutput").innerHTML = results;
}
function mode() {
document.getElementById("modeOutput").innerHTML = "Fahad!";
}
function median() {
document.getElementById("medianOutput").innerHTML = "Nasser";
}
function stdv() {
document.getElementById("stdvOutput").innerHTML = "Alqahtani";
}
Mean: <input type="text" id="meanText"> Median:
<input type="text" id="medianText"> Mode:
<input type="text" id="ModeText"> Standard Deviation of the data:<input type="text" id="STDV">
<p id="meanOutput"></p>
<p id="modeOutput"></p>
<p id="medianOutput"></p>
<p id="stdvOutput"></p>
<button onclick="mean(document.getElementById('meanText').value); median(); mode(); stdv();">Calculate</button>
问题涉及字符串类型到整数的类型转换,您需要解析输入的数字以便进行数学计算,并且
类型转换前
你需要将你的输入(用 space 分隔的不同数字,例如 22 23 24)转换为一个子字符串数组,这可以使用 javascript 中的拆分函数来实现。特别是在您的情况下,您需要根据输入中的 spaces 进行拆分。
在您的代码中休息一切都很好。
希望这对您有所帮助。
代码更改只会
function mean(values) {
var total = 0,
i, results;
var arraySubstrings = values.split(' ');
for (i = 0; i < arraySubstrings.length; i += 1) {
total += parseInt(arraySubstrings[i]);
}
results = total / arraySubstrings.length;
document.getElementById("meanOutput").innerHTML = results;
}