gpt4 book ai didi

CoffeeScript 2 维数组用法

转载 作者:行者123 更新时间:2023-12-04 04:44:02 25 4
gpt4 key购买 nike

我觉得我缺少 CoffeeScript 和二维数组的一些东西。我只是想制作一个空间网格(想想西洋跳棋)。经过一些搜索和 arrays.map 函数的发现,我想到了这个:

@spaces = [0...20].map (x)->
[0...20].map (y) ->
new Elements.Space()

这似乎很有效,我有一个漂亮的二维数组,每个数组中都创建了我的 Space 对象。但现在我想将创建的空间构造函数发送到 x,y 位置。因为我有两层深,所以当我输入 y 的 map 函数时,我丢失了 x 变量。

理想情况下我想做这样的事情:

@spaces = [0...20].map (x)->
[0...20].map (y) ->
new Elements.Space(x, y)

或者我觉得更自然的东西,比如:

for row in rows
for column in row
@spaces[row][column] = new Elements.Space(row, column)

我真的很乐意接受任何更好的方法。我知道如何使用标准 JavaScript 执行此操作,但我真的很想学习如何使用 CoffeeScript 执行此操作。

最佳答案

您第一次尝试使用 map 是一种有效的方法。你实际上并没有丢失 x,因为闭包。所以你的第二个代码块没有问题:

@spaces = [0...20].map (x)->
[0...20].map (y) ->
new Elements.Space(x, y)

这个 for 循环版本也很简单:

@spaces = for x in [0...20]
for y in [0...20]
new Elements.Space(x, y)

记住,一切都是表达式。所以这是有效的(并且可能比 map 版本更清晰)。

关于CoffeeScript 2 维数组用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12613662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com