是否有一种 Jade 可以理解的、简洁的方法来将字符串和变量连接成变量名?
理想情况下,它看起来像这样:
each #{shape + 'Text'} in #{shape + 'Texts'}
li #{shape + 'Text'}
我尝试使用window[shape + 'Text']
但这似乎不起作用。也许我做错了?
这就是我想这样做的原因:
我有一个名为 shapes
的数组,如下所示:['square', 'triangle', 'circle']
我正在使用 Jade 的 each ... in ...
函数来迭代该数组。在函数的每次迭代中,我需要对其他几个数组之一执行另一个 each ... in ...
操作。我不想使用直接变量来选择要迭代的数组,例如 shapes 中的每个形状
,而是想将 shape
与字符串连接以获得类似的结果squareTexts中的每个squareText
或circleTexts中的每个circleText
。
目前,我正在使用条件来实现我想要的结果,但它很冗长并且不符合语言的简约精神。
预先感谢您的任何建议。
最佳答案
所以在我的例子中,技巧是使用 Javascript 的 eval()
函数将变量名称和字符串连接成一个新的变量名称。这是我成功(且简洁)的实现。
- var items = eval(shape + 'Texts');
each item, i in items
li #{items[i]}
关于javascript - 将字符串和变量连接成 Jade 的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12791114/