如何找到 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'