码迷,mamicode.com
首页 > 其他好文 > 详细

codewars 随手记

时间:2015-08-26 09:21:54      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

1.ES6数组遍历语法糖=>

  在C#Linq里曾经用过,因此也不是很陌生.

 var range = Array.apply(null, Array(x)).map((_, i) => ++i);

  运用了apply填充空数组的方法。

  apply运用在数组上还有:将一个数组传递给一个不接受数组作为参数的函数、扁平化二维数组(e.g.函数参数里有数组)。

> Math.max.apply(null, [10, -1, 5])
10

 2.使用递归求平方和:

function cal(x){
    return x==1?1:(cal(x-1)+x*x);
}
>cal(10)

 在x为1000的时候,提示stack overflow。

   于是改用尾递归:

function cal(x,y){
   return x==0?1:(cal(x-1,x*x)+y) ;         
}
>cal(10,0)
385

codewars后台没有报错。但是,看了一些文章(e.g.http://bbs.csdn.net/topics/390317532)后发现,尾递归依旧逃不过stackoverflow的问题。实际测试了一下,在上述两个函数cal(30000)都会报错。

3.稀疏数组

[,,].every(function(x){return x==22222})
true

稀疏数组在遍历时会跳过“空元素”。暂时没想到办法。

js的数组其实是字符串和值的键值对。只是一个特殊的对象。

 

codewars 随手记

标签:

原文地址:http://www.cnblogs.com/thinkxzx/p/4756658.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!