AJAXBBS.NET   yemoo's blog

专注WEB前端及RIA技术 -- XHTML/CSS/JavaScript/Ajax/RIA

导航

« Ext.js源码研读总结有关JS中Event对象的几点总结 »

【启发】不用循环计算1到100的和

这篇日志完全是看了一篇日志后的启发,原文为:邪恶的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的和

这些我们以往都通过循环进行的计算,现在都可以一行代码巧妙搞定,不得不叹服编程语言隐含的灵巧,编程的世界总有太多的东西等待我们去发现。学无止境,努力吧!

Share

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

About ME

  • 网名:网者归来/yemoo,长期并将继续投身于WEB前端相关技术的学习和推广的大军中,目前就职于杭州,从事前端开发相关工作,有事可email/msn联系。
  • Email:netman8410#163.com
    MSN:yanwei8410#hotmail.com
    PS:牛B都是从傻B变来的

Search

网站分类

最近发表

最新评论及回复

文章归档

Powered By Z-Blog 1.8 Arwen Build 90619  豫ICP备06015770号

Copyright 2006-2009 AJAXBBS.NET. All Rights Reserved.