在javascript中,我正在尝试创建一个与您可以输入的分数有关的程序,我需要一个函数将这种格式的分数转换为(" 10/27") 10或27取决于用户规格,但我不知道如何编写此功能。任何让我入门的代码或建议都会非常感激。
答案 0 :(得分:1)
考虑str
包含输入值,
a = str.substring(str.indexOf("/")+1);
b = str.substring(0, str.indexOf("/"));
<强>输出:强>
如果str是"10/17"
那么,
a == 17;
b == 10;
答案 1 :(得分:0)
您可以将字符串拆分为split()
的数组,然后将第一部分或第二部分作为分子或分母:
function getNumerator(fraction) {
// fraction = "10/27"
return fraction.split("/")[0];
}
function getDenominator(fraction) {
// fraction = "10/27"
return fraction.split("/")[1];
}
答案 2 :(得分:0)
var fraction = "10/27".split("/");
var numerator = fraction[0];
var denominator = fraction[1];
您当然也可以使用库:https://github.com/ekg/fraction.js
有了这个库,答案就是:
(new Fraction(10, 27)).numerator
答案 3 :(得分:0)
您可以使用indexOf()
在字符串中搜索。它返回搜索字符串的第一个位置。
如果要使用其中的字符拆分字符串,请使用split()
。它将返回一个数组。所以对于例如:在你的字符串 27/10 中,indexOf / 是 3 ,但如果你进行拆分,你将获得2个值的数组, 27和10。
function splitString(str, searchStr) {
return str.split(searchStr);
}
function calculateValue(str) {
var searchStr = '/';
var values = splitString(str, searchStr);
var result = parseInt(values[0]) / parseInt(values[1]);
notify(str, result);
}
function notify(str, result) {
console.log(result);
document.getElementById("lblExpression").innerText = str;
document.getElementById("lblResult").innerText = result;
}
(function() {
var str = "27/10";
calculateValue(str)
})()
Expression:
<p id="lblExpression"></p>
Result:
<p id="lblResult"></p>