您应该使用像map、filter和reduce这样的函数,而不是编写for或while循环。这是个推荐做法,因为:
10年积累的成都网站建设、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有色尼免费网站建设让你可以放心的选择与我们合作。
循环使产生代码副作用变得容易,而副作用就会使代码逻辑变成意大利面条,杂乱无章。
当你试图同时做不止一件事情时,循环会你陷入痛苦。
函数式编程可以防止代码产生与感冒药一样多的副作用。它迫使你一次只做一件事,而且比循环更具可读性。
循环,就像指针一样,是一种简单的编程方法。它们对于某些关键代码非常有用,但我想会说,我们中很少有人在研究显卡驱动程序。
让我们切入正题——这里有一个JavaScript程序的比较。首先,老旧的循环版本:
- const cats = ['Antonio', 'Squid', 'Tornado', 'Avocado', 'Barnacles', 'Abroteus'];
- const stringStartsWithA = x => x[0].toLowerCase() === 'a';
- const catsWhoseNameStartsWithA = [];
- for (let i = 0; i < cats.length; i++) {
- if (stringStartsWithA(cats[i])) {
- catsWhoseNameStartsWithA.push(cats[i]);
- }
- }
- console.log(catsWhoseNameStartsWithA);
- // Output:
- // ["Antonio", "Avocado", "Abroteus"]
下面是新式的函数式编程:
- const cats = ['Antonio', 'Squid', 'Tornado', 'Avocado', 'Barnacles', 'Abroteus'];
- const stringStartsWithA = x => x[0].toLowerCase() === 'a';
- const catsWhoseNameStartsWithA = cats.filter(stringStartsWithA);
- console.log(catsWhoseNameStartsWithA);
- // Output:
- // ["Antonio", "Avocado", "Abroteus"]
当然,这是一个简单的示例,并且很可能是一个非常适合过滤器(filter)的用例。尽管如此,我们还是把5行混乱的代码变成了….0行?在***个示例中,我们已经使用了一行代码来声明数组。
这里的乐趣并没有到此为止:我们用过滤器来做例子,但还有更多像map, reduce, sort和flatten这样的用法。它们为我们编写有创意,优雅,最重要的是易于理解的代码提供了巨大的空间!
你怎么认为?也许我的例子有失偏颇,也许我完全错了。请在评论中告诉我-我感谢任何和所有的反馈!
新闻标题:2分钟编程技巧:不要在代码中使用循环
标题网址:http://www.mswzjz.cn/qtweb/news33/215283.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能