如何获取值表单输入数字来计算gcd?

时间:2015-01-24 06:53:45

标签: javascript jquery math mathjs

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

  • parseInt()和parseFloat()
  • IaNr = document.getElementById(" nrs")。value
  • math.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>

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

IaNr = $.map($("#nrs").val().split(','),
    function(val, idx) { 
         return parseInt(val, 10);
    })

DoGcd=math.gcd(IaNr);

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

<强> Demo

答案 2 :(得分: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知道更优雅/更短的解决方案,我欢迎它。

谢谢你的帮助。