如何找到 JavaScript 中的多项式方程的次数?
How to find degree of a polynomial equation in JavaScript?
我要求多项式方程的次数
den = a^2+a+1
等式的输出应该是
2
或
den=a^2+a^3+a+1
等式的输出应该是
3
但是我找不到 JavaScript
的正确解决方案
您可以使用正则表达式获取所有指数并计算最大值
var r = /a(\^\d)?/g;
var t = 'a^2+a^3+a+1';
var order = t.match(r).reduce((m, d) => {
var ex = d.split('^')[1];
if(ex && (ex > m)){
return ex;
}
return m;
},0);
console.log(order); // Logs '3'
您也可以在不使用 Array.prototype.reduce
的情况下执行相同的操作(已使用简单的 for 循环并为简单起见避免使用 ES6 语法)
var r = /a(\^\d)?/g;
var t = 'a^2+a^3+a+1';
var order = 0;
var matches = t.match(r);
for(var i = 0, j = matches.length ; i< j; i++){
var exp = matches[i].split('^')[1];
if(exp && (exp > order)){
order = exp;
}
}
console.log(order); // Logs '3'
我要求多项式方程的次数
den = a^2+a+1
等式的输出应该是
2
或
den=a^2+a^3+a+1
等式的输出应该是
3
但是我找不到 JavaScript
的正确解决方案您可以使用正则表达式获取所有指数并计算最大值
var r = /a(\^\d)?/g;
var t = 'a^2+a^3+a+1';
var order = t.match(r).reduce((m, d) => {
var ex = d.split('^')[1];
if(ex && (ex > m)){
return ex;
}
return m;
},0);
console.log(order); // Logs '3'
您也可以在不使用 Array.prototype.reduce
的情况下执行相同的操作(已使用简单的 for 循环并为简单起见避免使用 ES6 语法)
var r = /a(\^\d)?/g;
var t = 'a^2+a^3+a+1';
var order = 0;
var matches = t.match(r);
for(var i = 0, j = matches.length ; i< j; i++){
var exp = matches[i].split('^')[1];
if(exp && (exp > order)){
order = exp;
}
}
console.log(order); // Logs '3'