Javascript 将字符串和变量连接为Jade的变量名
有没有一种好的、干净的方法将字符串和变量连接成Jade可以理解的变量名 理想情况下,它看起来像这样:Javascript 将字符串和变量连接为Jade的变量名,javascript,string,variables,concatenation,pug,Javascript,String,Variables,Concatenation,Pug,有没有一种好的、干净的方法将字符串和变量连接成Jade可以理解的变量名 理想情况下,它看起来像这样: each #{shape + 'Text'} in #{shape + 'Texts'} li #{shape + 'Text'} 我尝试使用window[shape+'Text'],但似乎不起作用。也许我做错了 以下是我想这样做的原因: 我有一个名为shapes的数组,看起来像这样:[‘正方形’、‘三角形’、‘圆形’] 我在用杰德的每一个。。。在里面函数来迭代此数组。在我的函数的每次
each #{shape + 'Text'} in #{shape + 'Texts'}
li #{shape + 'Text'}
我尝试使用window[shape+'Text'],但似乎不起作用。也许我做错了
以下是我想这样做的原因:
我有一个名为shapes的数组,看起来像这样:[‘正方形’、‘三角形’、‘圆形’]
我在用杰德的每一个。。。在里面函数来迭代此数组。在我的函数的每次迭代中,我需要每次都做另一次。。。在里面其他几个数组中的一个。我不想使用一个直接向上的变量来选择要迭代的数组,比如shapes中的每个shape,而是想将shape与字符串连接起来,以获得类似于squareText中的每个squareText或circleText中的每个circleText的内容
目前,我正在使用条件句来实现我想要的结果,但它很冗长,不符合语言的最低限度精神
提前感谢您的建议。我并不完全理解您所指的内容,因为我对jade一点都不了解,但您可以通过这样的数组进行循环
var a = ['square', 'triangle', 'circle'];
var i, l, item;
l = a.length;
for (i = 0; i < l; i++) {
item = a[i];
// At this point, you can refer to window[item + 'Text']
// but I'm not sure what that is supposed to mean.
}
还有一个可用的,但我通常不会费心把它修补到较旧的浏览器中。我并不完全理解您所指的内容,因为我一点也不了解jade,但您可以通过这样的数组进行循环
var a = ['square', 'triangle', 'circle'];
var i, l, item;
l = a.length;
for (i = 0; i < l; i++) {
item = a[i];
// At this point, you can refer to window[item + 'Text']
// but I'm not sure what that is supposed to mean.
}
还有一个可用的,但我通常不会费心把它添加到旧浏览器中。所以在我的例子中,技巧是使用Javascript的eval函数将变量名和字符串连接成新的变量名。下面是我成功而简洁的实现
- var items = eval(shape + 'Texts');
each item, i in items
li #{items[i]}
在我的例子中,技巧是使用Javascript的eval函数将变量名和字符串连接成一个新的变量名。下面是我成功而简洁的实现
- var items = eval(shape + 'Texts');
each item, i in items
li #{items[i]}
我建议寻找一个用Jade创建/评估此内容的选项,使Jade代码和任何模板尽可能简单。我建议寻找一个用Jade创建/评估此内容的选项,保持jade代码和任何模板尽可能简单。您可以将变量和字符串括在括号中
each item, i in items
li=(shape + 'Texts')
可以将变量和字符串括在括号中
each item, i in items
li=(shape + 'Texts')
我了解如何使用Javascript或JQuery或其他工具循环遍历数组。我感兴趣的是将字符串和变量连接到Jade可以理解的已定义变量的名称中。我了解如何使用Javascript或JQuery或其他工具在数组中循环。我感兴趣的是将字符串和变量连接到Jade可以理解的已定义变量的名称中。为什么不直接使用{item}而不是{items[I]}?为什么不直接使用{item}而不是{items[I]}?