Javascript number超过16位就无法比较了,所以自己写了一个。
用到的数组函数
1、Array.reverse() 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象
2、Array.concat concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。
3、Array.join join 返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。
1 <script type="text/javascript"> 2 //begin > end 返回true 3 //begin <= end 返回false 4 function Compare(begin, end) { 5 6 if (begin == end) { 7 return false; 8 } 9 10 var beginArr = new Array(); 11 var endArr = new Array(); 12 13 var len = (begin.length > end.length) ? begin.length : end.length; 14 beginArr = begin.paddLeftA(len, '-1'); 15 endArr = end.paddLeftA(len, '-1'); 16 17 18 var result = false; 19 //debugger; 20 for (var i = 0; i < len; i++) { 21 if (parseFloat(beginArr[i]) == parseFloat(endArr[i])) { 22 continue; 23 } else { 24 result = parseFloat(beginArr[i]) > parseFloat(endArr[i]); 25 break; 26 } 27 } 28 29 return result; 30 } 31 32 String.prototype.paddLeft = function(myLength, paddStr) { 33 var stringLength = this.length; //输入字符串长度 34 var paddLength = myLength - stringLength; //0字符串长度 35 var result = ''; //补0后返回的字符串 36 37 //生成0字符串 38 for (var i = 0; i < paddLength; i++) { 39 result += paddStr || '0'; 40 } 41 //拼接 42 43 result += this; 44 return result; 45 } 46 47 //返回数组 48 String.prototype.paddLeftA = function(myLength, paddStr) { 49 var stringLength = this.length; //输入字符串长度 50 var paddLength = myLength - stringLength; //0字符串长度 51 var result = ''; //补0后返回的字符串 52 var resultArr = new Array(); 53 54 //生成0字符串 55 for (var i = 0; i < paddLength; i++) { 56 resultArr.push(paddStr) 57 } 58 //拼接 59 60 result += this; 61 return resultArr.concat(this.split('')); 62 } 63 64 function add(begin, end) { 65 66 var result = new Array(); 67 //左补零 68 var len = (begin.length > end.length) ? begin.length : end.length; 69 var beginArr = begin.paddLeft(len, '0').split(''); 70 var endArr = end.paddLeft(len, '0').split(''); 71 72 //从个位开始计算 73 for (var i = len - 1; i > -1; i--) { 74 var temp1 = parseInt(beginArr[i]); 75 var temp2 = parseInt(endArr[i]); 76 77 var sum = temp1 + temp2; 78 result.push(sum); 79 } 80 81 for (var i = 0; i < result.length; i++) { 82 var temp = parseInt(result[i]); 83 if (temp >= 10) { 84 result[i] = (temp - 10); 85 if (i == result.length - 1) { 86 result.push(1); 87 } else { 88 result[i + 1] = parseInt(result[i + 1]) + 1; 89 } 90 } 91 } 92 return result.reverse().join(''); 93 } 94 </script>