js打印纸函数代码(递归)

代码如下:

//打印纸尺寸,单位MM
//http://en.wikipedia.org/wiki/ISO_216
var page = function() {
var A0 = { name: "A0", width: 841, height: 1189 }; //单位MM
var B0 = { name: "B0", width: 1000, height: 1414 }; //单位MM
var C0 = { name: "C0", width: 917, height: 1297 }; //单位MM
//获取前一个规格
function getPrefixSize(name) {
var list = name.split('');
var series = list[0];
var number = parseInt(list[1]);
if (!isNaN(number) && number > 0) {
return series + (number - 1);
}
}
//获取规格的尺寸
function getSize(name) {
if (name == "C7/6") {
return { name: "C7/6", width: 81, height: 162 };
}
var list = name.split('');
var series = list[0];
var number = parseInt(list[1]);
if (isNaN(number)) {
return;
}
if (number == 0) {
if (series == "A") { return A0; }
else if (series == "B") { return B0; }
else if (series == "C") { return C0; }
}
return { name: name, width: parseInt(getSize(getPrefixSize(name)).height / 2), height: parseInt(getSize(getPrefixSize(name)).width) };
}
return {
getSize: getSize
}
} ();

用法


代码如下:

page.getSize('A4')

(0)

相关推荐

  • JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法

    本文实例讲述了JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法.分享给大家供大家参考,具体如下: var array = [1, 2, 3, 4, 5, 6, 7, 8, 9]; function reverseDump(start) { start++; if (start > array.length / 2) { return; } var temp = array[start]; array[start] = array[array.length - start

  • JS中递归函数

    编程语言中,函数Func(Type a,--)直接或间接调用函数本身,则该函数称为递归函数.递归函数不能定义为内联函数. 递归函数: function factorical(num){ if(num<=1){ return 1; } else{ return num*factorical(num-1); } } factorial(2)//2 这个递归函数就是用函数来调用函数本身,但是这样真的好吗,好 接下来看这里 var another=factorical; factorical=null;

  • JavaScript支持的最大递归调用次数分析

    你对JavaScript引擎能进行多少次递归调用好奇吗? 多少次递归调用 下面的函数可以让你找到答案: (灵感来自Ben Alman的 gist) 复制代码 代码如下: function computeMaxCallStackSize() {     try {         return 1 + computeMaxCallStackSize();     } catch (e) {         // Call stack overflow         return 1;     }

  • JavaScript采用递归算法计算阶乘实例

    本文实例讲述了JavaScript采用递归算法计算阶乘的方法.分享给大家供大家参考.具体如下: 这里使用JavaScript中的递归算法计算阶乘,初学编程时候,这是很常见的小例子,比较一下,JS中的计算方法与其有何异同. 运行效果如下: 具体代码如下: <html> <head> <meta http-equiv="content-type" content="text/html; charset=GB2312" /> <t

  • JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解

    废话不多说了,直奔主题,你,具体代码如下所示: <script> //----------------for用来遍历数组对象-- var i,myArr = [1,2,3]; for (var i = 0; i < myArr.length; i++) { console.log(i+":"+myArr[i]); }; //---------for-in 用来遍历非数组对象 var man ={hands:2,legs:2,heads:1}; //为所有的对象添加cl

  • javascript高级编程之函数表达式 递归和闭包函数

    定义函数表达式有两种方式:函数声明和函数表达式. 函数声明如下: function functionName(arg0,arg1,arg2){ //函数体 } 首先是function关键字,然后是函数的名字. FF,Safrai,Chrome和Opera都给函数定义了一个非标准的name属性,通过这个属性可以访问到函数指定的名字.这个函数的值永远等于跟在function关键字后面的标识符. //只在FF,Safari,Chrome和Opera有效 alert(functionName.name)

  • js使用递归解析xml

    xml结构: 复制代码 代码如下: <RightMenuItems>   <Item Code="New" Name="新建" GroupCode="Edit" GroupName="编辑"/>   <Item Code="Open" Name="打开" GroupCode="Edit" GroupName="编辑"&

  • JS 树形递归实例代码

    复制代码 代码如下: var l=json.length; var arr = []; for(var i = 0; i < l; i++){ (function(){ var jsonArray =arguments[0]; for(var k in jsonArray){ if(k.indexOf('children') != -1 && jsonArray[k] != null){ arguments.callee(jsonArray[k]); } else{ if(k ==

  • js中递归函数的使用介绍

    下面我们就做一个10以内的阶乘试试看吧: js中递归函数的使用 function f(num){ if(num alert("10!的结果为:"+f(10)); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 递归函数的调用就说这么多了 js递归函数调用自身时的保险方式. 来自js高级程序设计 一个典型阶乘递归函数: 复制代码 代码如下: function fact(num){ if (num<=1){ return 1; }else{ return num*fact

  • JavaScript实现数字数组按照倒序排列的方法

    本文实例讲述了JavaScript实现数字数组按照倒序排列的方法.分享给大家供大家参考.具体如下: 下面的代码演示了JS数组如何通过sort对数字类型的数组进行倒序排序 <!DOCTYPE html> <html> <body> <p id="demo"> Click the button to sort the array. </p> <button onclick="myFunction()"&g

  • 一个JavaScript递归实现反转数组字符串的实例

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-递归实现反转数组字符串</title> <script> var func = function(x,indx,str){ return

随机推荐