我想找到多项式方程的次数
den = a^2+a+1
等式的输出应为
2
或
den=a^2+a^3+a+1
等式的输出应为
3
但我无法找到适合JavaScript的正确解决方案
答案 0 :(得分:1)
您可以使用正则表达式获取所有指数并计算最大值
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'