Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将字符串和变量连接为Jade的变量名_Javascript_String_Variables_Concatenation_Pug - Fatal编程技术网

Javascript 将字符串和变量连接为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的数组,看起来像这样:[‘正方形’、‘三角形’、‘圆形’] 我在用杰德的每一个。。。在里面函数来迭代此数组。在我的函数的每次

有没有一种好的、干净的方法将字符串和变量连接成Jade可以理解的变量名

理想情况下,它看起来像这样:

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]}?