/**
* 农场一头小母牛
* 每年生头小母牛
* 母牛五岁产母牛
* 二十年上多少牛
*/

划分程序,母牛只管自己的年龄能不能产牛仔,母牛是model同时也是工厂

农场只管养牛,收获新牛。

一年一个循环,农场养牛,牛产子

/**
* [Decode error - output not utf-8]
农场有71只小母牛
母牛0,20岁
母牛1,14岁
母牛2,13岁
母牛3,12岁
母牛4,11岁
母牛5,10岁
母牛6,9岁
母牛7,8岁
母牛8,8岁
母牛9,7岁
母牛10,7岁
母牛11,7岁
母牛12,6岁
母牛13,6岁
母牛14,6岁
母牛15,6岁
母牛16,5岁
母牛17,5岁
母牛18,5岁
母牛19,5岁
母牛20,5岁
母牛21,4岁
母牛22,4岁
母牛23,4岁
母牛24,4岁
母牛25,4岁
母牛26,4岁
母牛27,3岁
母牛28,3岁
母牛29,3岁
母牛30,3岁
母牛31,3岁
母牛32,3岁
母牛33,3岁
母牛34,2岁
母牛35,2岁
母牛36,2岁
母牛37,2岁
母牛38,2岁
母牛39,2岁
母牛40,2岁
母牛41,2岁
母牛42,2岁
母牛43,1岁
母牛44,1岁
母牛45,1岁
母牛46,1岁
母牛47,1岁
母牛48,1岁
母牛49,1岁
母牛50,1岁
母牛51,1岁
母牛52,1岁
母牛53,1岁
母牛54,1岁
母牛55,0岁
母牛56,0岁
母牛57,0岁
母牛58,0岁
母牛59,0岁
母牛60,0岁
母牛61,0岁
母牛62,0岁
母牛63,0岁
母牛64,0岁
母牛65,0岁
母牛66,0岁
母牛67,0岁
母牛68,0岁
母牛69,0岁
母牛70,0岁
[Finished in 0.9s]
*/
/**
* 农场一头小母牛
* 每年生头小母牛
* 母牛五岁产母牛
* 二十年上多少牛
*/ //////////////////////////////////////////////////////////////
/// 母牛
var Boosy = function() {
var self = this;
self.age = 0;
};
Boosy.prototype = {};
Boosy.prototype.constructor = Boosy; Boosy.prototype.live = function() {
var self = this;
self.age++;
}; Boosy.prototype.birthBaby = function() {
var self = this;
if (self.age >= 5) {
return new Boosy();
};
return null;
}; //////////////////////////////////////////////////////////////
/// 农场
var Farm = function() {
var self = this;
self.boosies = [];
};
Farm.prototype = {};
Farm.prototype.constructor = Farm; Farm.prototype.add = function(boosy) {
var self = this;
self.boosies.push(boosy);
}; Farm.prototype.runBussiness = function() {
var self = this;
var pool = [];
self.boosies.forEach( function(element, index) {
var boosyBaby = element.birthBaby();
if(boosyBaby){
pool.push(boosyBaby);
};
element.live();
}); pool.forEach( function(element, index) {
self.boosies.push(element);
});
pool = [];
}; Farm.prototype.count = function() {
var self = this;
console.log("农场有"+self.boosies.length+"只小母牛");
self.boosies.forEach( function(element, index) {
console.log('母牛'+index+","+element.age+"岁");
});
}; //////////////////////////////////////////////////////////////
// 测试 var farm = new Farm();
farm.add(new Boosy()); for (var i = 0; i <; i++) {
farm.runBussiness();
}; farm.count(); /**
* [Decode error - output not utf-8]
农场有71只小母牛
母牛0,20岁
母牛1,14岁
母牛2,13岁
母牛3,12岁
母牛4,11岁
母牛5,10岁
母牛6,9岁
母牛7,8岁
母牛8,8岁
母牛9,7岁
母牛10,7岁
母牛11,7岁
母牛12,6岁
母牛13,6岁
母牛14,6岁
母牛15,6岁
母牛16,5岁
母牛17,5岁
母牛18,5岁
母牛19,5岁
母牛20,5岁
母牛21,4岁
母牛22,4岁
母牛23,4岁
母牛24,4岁
母牛25,4岁
母牛26,4岁
母牛27,3岁
母牛28,3岁
母牛29,3岁
母牛30,3岁
母牛31,3岁
母牛32,3岁
母牛33,3岁
母牛34,2岁
母牛35,2岁
母牛36,2岁
母牛37,2岁
母牛38,2岁
母牛39,2岁
母牛40,2岁
母牛41,2岁
母牛42,2岁
母牛43,1岁
母牛44,1岁
母牛45,1岁
母牛46,1岁
母牛47,1岁
母牛48,1岁
母牛49,1岁
母牛50,1岁
母牛51,1岁
母牛52,1岁
母牛53,1岁
母牛54,1岁
母牛55,0岁
母牛56,0岁
母牛57,0岁
母牛58,0岁
母牛59,0岁
母牛60,0岁
母牛61,0岁
母牛62,0岁
母牛63,0岁
母牛64,0岁
母牛65,0岁
母牛66,0岁
母牛67,0岁
母牛68,0岁
母牛69,0岁
母牛70,0岁
[Finished in 0.9s]
*/

javascript 写农场迭代的更多相关文章

  1. 调整JavaScript抽象的迭代方案

    原文链接:Adapting JavaScript Abstractions Over Time 译者:小溪里 校对者:郭华翔.苗冬青 即使还没有读过我的文章<在处理网络数据的 JavaScrip ...

  2. 用javascript 写个函数返回一个页面里共使用了多少种HTML 标签

    今天我无意间看到一个面试题: 如何用javascript 写个函数返回一个页面里共使用了多少种HTML 标签? 不知你看到 是否蒙B了,如果是我 面试,肯定脑子嗡嗡的响.... 网上搜了搜也没有找到答 ...

  3. JavaScript写在Html页面的<head></head>中

    JavaScript写在Html页面的<head></head>中 ----------------- <html> <head> <style ...

  4. JavaScript写一个连连看的游戏

    天天看到别人玩连连看, 表示没有认真玩过, 不就把两个一样的图片连接在一起么, 我自己写一个都可以呢. 使用Javascript写了一个, 托管到github, 在线DEMO地址查看:打开 最终的效果 ...

  5. javascript写在<head>和<body>里的区别

    Javascript写在哪里?概括起来就是三种形式:1. 内部:Html网页的<body></body>中:2. 内部:Html网页的<head></head ...

  6. 原生javascript写的侧栏跟随效果

    浏览网站时经常看到有的网站上,当一个页面很长的时候,设定侧栏内容会跟随滚动条滚动,我们把这种效果叫做“侧栏跟随滚动”.这种特效对提高网站浏览量.文章点击率.广告点击量都有一定效果. 侧栏跟随滚动的实现 ...

  7. javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数

    javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(" ...

  8. 用JavaScript写一个区块链

    几乎每个人都听说过像比特币和以太币这样的加密货币,但是只有极少数人懂得隐藏在它们背后的技术.在这篇博客中,我将会用JavaScript来创建一个简单的区块链来演示它们的内部究竟是如何工作的.我将会称之 ...

  9. 怎么分别javascript写在<head>里还是<body>里面?

    怎么分别javascript写在<head>里还是<body>里面? 具体哪些语句写在<body>里,哪些语句写在<head>里 满意答案 BeginN ...

随机推荐

  1. C#Winform窗口特效源码(1)

    本文基于.Net开发,使用C#作为开发语言,分别包含以下效果: 移动无边框窗口.窗口移动限制(限制在屏幕内).桌面贴边自动隐藏(仿QQ隐藏窗口) 1.移动无边框窗口 采用了消息的方式,可以实现通过窗口 ...

  2. Nodejs实现代理服务器配置

    var net = require('net'); var local_port = 8893; //在本地创建一个server监听本地local_port端口 net.createServer(fu ...

  3. JavaScript的递归之更多例子

    更多例子 第二个递归的例子是求两个自然数的最大公约数(有没有回到令人怀念的中学时代).下面的程序用的是经典的辗转相除法. //greatest common divisor //假定a.b都是正整数 ...

  4. iOS 状态栏、导航栏、工具栏、选项卡大小

    1.状态栏状态栏一般高度为20像素,在打手机或者显示消息时会放大到40像素高,注意,两倍高度的状态栏在好像只能在纵向的模式下使用.如下图用户可以隐藏状态栏,也可以将状态栏设置为灰色,黑色或者半透明的黑 ...

  5. C# DataTable的詳細使用方法

    在项目中经经常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.DataTabl ...

  6. Vim 快捷键整理

    一.移动光标 1.左移h.右移l.下移j.上移k 2.向下翻页ctrl + f,向上翻页ctrl + b 3.向下翻半页ctrl + d,向上翻半页ctrl + u 4.移动到行尾$,移动到行首0(数 ...

  7. MySQL主主复制+LVS+Keepalived实现MySQL高可用性

    http://bestvivi.com/2015/09/09/MySQL%E4%B8%BB%E4%B8%BB%E5%A4%8D%E5%88%B6+LVS+Keepalived%E5%AE%9E%E7% ...

  8. swap函数的例子

    13.31为你的HasPtr类定义一个<运算符,并定义一个HasPtr的vector为这个vector添加一些元素,并对它执行sort.注意何时会调用swap. #include<iost ...

  9. map的例子

    11.4 编写单词计数程序,忽略大小写和标点.例如,“example.”,“example,"和”Example“应该递增相同的计算器. #include<iostream> # ...

  10. ASP.NET 开发人员应该知道的8个网站

    1.CodeProject http://www.codeproject.com/ 2.DotNetNuke 3.4GuysFromRolla 4.DevSource 5.DevX http://ww ...