Coffeescript翻译-嵌套for循环
Coffeescript translation - nested for loops
我试图在coffeescript学习javascript,并通过在codepen上重写一些整洁的javascript来练习。有些地方出了问题,我认为这是由于我不知道如何在咖啡脚本中编写嵌套循环。原代码为:
for(var j = 0 ; j<yElems;j++){
for(var i = 0 ; i<xElems;i++){
var elem = document.createElement('div');
if(i%2==0){
elem.classList.add('bs');
}else{
elem.classList.add('bs1');
}
elem.style.top = j*30-20+'px';
elem.style.left = i*30-20+'px';
elem.style.zIndex =100- j+''+i;
elem.style.backgroundColor = colors[Math.round(Math.random()*4)];
body.appendChild(elem);
elems.push(elem);
}
}
和我的"翻译"是:
grid = ->
for i in xElems
elem = document.createElement 'div'
if i % 2 is 0 then elem.classList.add 'bs' else elem.classList.add 'bs1'
elem.style.top = j*30-20+'px'
elem.style.left = i*30-20+'px'
elem.style.zIndex = 100- j+''+i
elem.style.backgroundColor = colors[Math.round(Math.random()*4)]
body.appendChild(elem)
elems.push(elem)
for j in yElems
grid()
不知道什么不工作。如果不是这样,我还是不确定。原笔在:
http://codepen.io/pixelgrid/pen/Hxkhs和我的叉子是:
http://codepen.io/bubbaJackson/pen/tyLGC谢谢。
for i in xElems
应该for i in [0..xElems] by 1
对于j循环也应该这样做。
xElems中的i将尝试将xElems视为一个数组,并给出数组中的每个元素。xElems在原始js中似乎是一个数字,因此您希望迭代一个范围,这可以通过使用[a..b]
符号来实现。注意,[a..b]
将不包括b,而[a...b]
将包括b的值。
正如mu is too short
在评论中指出的,这基本上直接编译成你想要复制的内容:for(i = 0; i < xElems; ++i)
相关文章:
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 我的javascript for循环不起作用
- For循环冻结Javascript
- 如何在for循环中添加事件侦听器
- 双“for”循环(循环)
- javascript for循环不起作用
- for循环中的javascript if语句找不到==
- Javascript在for循环中等待处理请求
- For循环在Jquery中只运行一次
- 如何在for循环中使用计数器
- for循环中的JavaScript闭包
- 为什么我们在ES2015中需要一个新的for循环结构,而我们已经有了for、forEach
- For循环在调用时未运行
- 如何使用for循环添加所有按钮'单击事件
- 如何更改在for循环中生成的圆的位置
- 为什么这个For循环会使浏览器实验室崩溃
- 为什么我使用javascript获得了一个无限的for循环
- 在for循环中使用多维数组设置google.maps.Marker图标
- 如何在angularJS中运行for循环而不使用html标记