2

我使用math.js来计算从输入中获取的一系列数字的 gcd。在我提到的经过测试的选项中:

  • parseInt() 和 parseFloat()
  • IaNr=document.getElementById("nrs").value
  • 数学.gcd(nrs.value);
  • math.gcd($("#nrs").val())
  • IaNr.toString()

但它不起作用。我错过了什么,因为它不计算输入的数字。当我直接提供数字时它会起作用。前任:math.gcd(4, 8, 25,74)

<script src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/1.2.0/math.min.js"></script>  

$(function(){

IaNr=$("#nrs").val()

DoGcd=math.gcd(IaNr)

$("#show").html(DoGcd)
})          

<input id="nrs"  value="14,92,34,78">

<div id="show"></div>
4

3 回答 3

1
var arr = $("#nrs").val();
var array  = arr.split(',');
for(var i=0 ; i< array.length ;i++){
array[i] = parseInt(array[i]);
}

dogcd = math.gcd(array[0],array[1],array[2],array[3]);
$("#show").html(dogcd);
于 2015-01-24T08:10:15.427 回答
0
IaNr = $.map($("#nrs").val().split(','),
    function(val, idx) { 
         return parseInt(val, 10);
    })

DoGcd=math.gcd(IaNr);

$("#show").html(DoGcd);

演示

于 2015-01-24T06:57:03.190 回答
0

我以@praveenraj9 建议的解决方案为基础:

var arr = $("#nrs").val();
var array  = arr.split(',');
for(var i=0 ; i< array.length ;i++){
array[i] = parseInt(array[i]);
}

并适应我的需要。

 FaL=arr.length;
 if(FaL===2){$("#show").html(math.gcd(ar[0],ar[1]))};
 if(FaL===3){$("#show").html(math.gcd(ar[0],ar[1],ar[2]))}
 etc

如果 anyoane 知道更优雅/更短的解决方案,我欢迎它。

谢谢你的帮助。

于 2015-01-24T16:06:43.950 回答