这篇日志完全是看了一篇日志后的启发,原文为:邪恶的eval和new Function。
很少使用new Array的方式来定义数组,没想到new Array有这么一个妙用,通过new Array(n)我们可以创建n个空元素,同时也就在n个元素中间存在n-1个空白,通过join,我们可以将一些东西放在这些空白中间从而组成我们需要的特殊串,这不禁启发了我的灵感,这个特点可以使我不通过循环就可以很容易的实现一个“有规律元素的连续运算”。比如计算1-100的数值的和。以往我们需要从1循环到100然后求和,但利用数组的这个特性我们可以通过简单的一行代码搞定,代码如下:
复制代码 代码如下:
var i=0,sum=eval('0'+new Array(101).join('+(++i)'));
此外可以做很多类似的数学运算,比如以下几个
复制代码 代码如下:
eval('0'+new Array(11).join('+Math.pow(++i,2)')) //计算1-10的平方和
eval('0'+new Array(100/2).join('+(i+=2)')) //计算2+4+6+...100的和
这些我们以往都通过循环进行的计算,现在都可以一行代码巧妙搞定,不得不叹服编程语言隐含的灵巧,编程的世界总有太多的东西等待我们去发现。
把上面的JavaScript代码改成VBS,就是VBS练习题所谓的骨灰级解法:
复制代码 代码如下:
Dim a(101)
Execute(Join(a,"s=s+i:i=i+1:"))
MsgBox s
原文:http://demon.tw/programming/no-loop-calculate-1-100-sum.html
很少使用new Array的方式来定义数组,没想到new Array有这么一个妙用,通过new Array(n)我们可以创建n个空元素,同时也就在n个元素中间存在n-1个空白,通过join,我们可以将一些东西放在这些空白中间从而组成我们需要的特殊串,这不禁启发了我的灵感,这个特点可以使我不通过循环就可以很容易的实现一个“有规律元素的连续运算”。比如计算1-100的数值的和。以往我们需要从1循环到100然后求和,但利用数组的这个特性我们可以通过简单的一行代码搞定,代码如下:
复制代码 代码如下:
var i=0,sum=eval('0'+new Array(101).join('+(++i)'));
此外可以做很多类似的数学运算,比如以下几个
复制代码 代码如下:
eval('0'+new Array(11).join('+Math.pow(++i,2)')) //计算1-10的平方和
eval('0'+new Array(100/2).join('+(i+=2)')) //计算2+4+6+...100的和
这些我们以往都通过循环进行的计算,现在都可以一行代码巧妙搞定,不得不叹服编程语言隐含的灵巧,编程的世界总有太多的东西等待我们去发现。
把上面的JavaScript代码改成VBS,就是VBS练习题所谓的骨灰级解法:
复制代码 代码如下:
Dim a(101)
Execute(Join(a,"s=s+i:i=i+1:"))
MsgBox s
原文:http://demon.tw/programming/no-loop-calculate-1-100-sum.html
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月22日
2024年11月22日
- 证声音乐图书馆《夏至 爵士境地》[320K/MP3][70.37MB]
- 孙露《同名专辑》限量1:1母盘直刻[低速原抓WAV+CUE]
- 【宝丽金唱片】群星《鼓舞飞扬》WAV+CUE
- 莫扎特弗雷德沃夏克肖斯塔科维奇《钢琴五重奏》(DG24-96)FLAC
- 证声音乐图书馆《夏至 爵士境地》[FLAC/分轨][360.16MB]
- 证声音乐图书馆《日落琴声 x 弦乐》[320K/MP3][71.2MB]
- 证声音乐图书馆《日落琴声 x 弦乐》[FLAC/分轨][342.58MB]
- 谢采妘2011《难忘的旋律(Non-StopChaCha)》马来西亚版[WAV+CUE]
- 林翠萍《听见林翠萍,记忆就会醒来》2CD[WAV+CUE]
- 木村好夫《天龍HIFI木吉他、木村好夫精选好歌》日本天龙版[WAV整轨]
- 证声音乐图书馆《日出琴声 x 民谣》[320K/MP3][53.76MB]
- 证声音乐图书馆《日出琴声 x 民谣》[FLAC/分轨][239.29MB]
- 证声音乐图书馆《绿意森林·吉他絮语》[320K/MP3][65.77MB]
- 证声音乐图书馆《绿意森林·吉他絮语》[FLAC/分轨][295.2MB]
- 证声音乐图书馆《流动与延展 彼拉提斯》[320K/MP3][56.88MB]