如何在JavaScript中找到多项式方程的度数?

时间:2018-05-08 06:43:20

标签: javascript parsing equation polynomial-math

我想找到多项式方程的次数

den = a^2+a+1

等式的输出应为

2

den=a^2+a^3+a+1

等式的输出应为

3

但我无法找到适合JavaScript的正确解决方案

1 个答案:

答案 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'