Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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 如何在数组变量上使用String.raw_Javascript_Jquery_Mathjax - Fatal编程技术网

Javascript 如何在数组变量上使用String.raw

Javascript 如何在数组变量上使用String.raw,javascript,jquery,mathjax,Javascript,Jquery,Mathjax,我的代码中有一个问题,我定义了数组,但它包含特殊字符,如/,{},(),[],等。。。(因为plainsource MathJax) 数组返回不包含上述特殊字符的字符串 PS:我读过关于String.raw,但我不知道如何在这种数组中使用它。请帮帮我:( 因为反斜杠是javascript字符串中的转义字符,如果希望它出现在字符串文字中,则需要将其加倍。请重试 var Array_QA = { "\\Large {\\lim_{x \\to 2}} (5^x + 2^x + 4)" : "

我的代码中有一个问题,我定义了数组,但它包含特殊字符,如
/,{},(),[],
等。。。(因为plainsource MathJax)

数组返回不包含上述特殊字符的字符串

PS:我读过关于
String.raw
,但我不知道如何在这种数组中使用它。请帮帮我:(


因为反斜杠是javascript字符串中的转义字符,如果希望它出现在字符串文字中,则需要将其加倍。请重试

var Array_QA = {
    "\\Large {\\lim_{x \\to 2}} (5^x + 2^x + 4)" : "33",
    "\\Large {\\lim_{x \\to 2}} \\frac {x^2 - 6x + 8}{x^3 - 4}" : "0"
};

String.raw
与模板文本一起使用,新的(ish)ES6语法用于带有内插变量、嵌入引号和换行符的字符串,以及可选的“标记”应用程序(这只是函数回调,它接收由每个插值变量分割的模板片段,以返回最终的组合字符串,不管您喜欢什么)

因此,如果我有一个处理模板文本的函数,它被称为
processLiteral
,那么我可以这样做,将其应用于文本:

processLiteral`This is a string with interpolated variables like ${someVar} and also ${otherVar}.`
具体来说,
String.raw
将用作模板文本的标记,它将返回原始字符串而不处理任何转义字符。这意味着
\n
将保持为
\n
而不是换行,
\t
将保持为
\t
而不是选项卡,等等。它是自动完成的在任何转义斜杠之前添加斜杠,从而转义斜杠,因此这相当于使用
\\n
\\t

因此,在您的情况下,如果您想使用该方法,因为您无法将模板文本直接放入对象键声明中(它无法正确解析),您应该执行以下操作:

var Array_QA = {};
Array_QA[String.raw`\Large {\lim_{x \to 2}} (5^x + 2^x + 4)`] = "33";
Array_QA[String.raw`\Large {\lim_{x \to 2}} \frac {x^2 - 6x + 8}{x^3 - 4}`] = "0";

也就是说,从一开始就将这样的复杂字符串作为对象键可能不是一个好主意……但它应该可以工作。如果可以,我建议重构代码以实现不同的目的。

您可以在计算属性键中使用它们。
var Array_QA = {};
Array_QA[String.raw`\Large {\lim_{x \to 2}} (5^x + 2^x + 4)`] = "33";
Array_QA[String.raw`\Large {\lim_{x \to 2}} \frac {x^2 - 6x + 8}{x^3 - 4}`] = "0";