Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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变量作为数组索引_Javascript_Arrays_Jsp_Variables_Indexing - Fatal编程技术网

使用javascript变量作为数组索引

使用javascript变量作为数组索引,javascript,arrays,jsp,variables,indexing,Javascript,Arrays,Jsp,Variables,Indexing,我有以下代码: var n = 1; var term = "${abc[n].term}"; console.log("term = " + term); 术语似乎是空的,但如果我替换 var term=“${abc[n].term}” 通过 var term=“${abc[1].term}” 它起作用了 看起来jsp正在寻找deck对象的n属性,当我使用is作为数组索引时,如何修复它,使n被它的值替换 编辑: 尝试混合使用JSTL和Javascript似乎不是一个好主意,如果要使用Java

我有以下代码:

var n = 1;
var term = "${abc[n].term}";
console.log("term = " + term);
术语似乎是空的,但如果我替换
var term=“${abc[n].term}”
通过
var term=“${abc[1].term}”
它起作用了

看起来jsp正在寻找deck对象的
n
属性,当我使用is作为数组索引时,如何修复它,使
n
被它的值替换

编辑: 尝试混合使用JSTL和Javascript似乎不是一个好主意,如果要使用Javascript变量作为数组索引,必须将对象复制到数组对象,如下所示:

var deck = new Array();
<c:forEach var="v" items="${abc}">
    deck.push("${v.term}");
</c:forEach>

var n = 1;
console.log("term = " + deck[n]);
var deck=newarray();
顶推(${v.term});
var n=1;
console.log(“term=“+deck[n]);

如果没有正确使用引号,请尝试以下操作:

var term = "${abc[" + n +"].term}";

“${abc[n].term}”
此处n被视为字符串的一部分,而不是变量
n
。所以试着把它连接起来

实际上,这是我一开始尝试的,但如果我这样做,我会得到以下异常:java.lang.NumberFormatException:对于输入字符串:“+n+”java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)java.lang.Integer.parseInt(Integer.java:481)JSP中的
${…
用于计算服务器端变量。您似乎完全忽略了这一点,您可以将JavaScript与JSP/JSTL/EL完美地结合起来。您应该只了解JSP/JSTL/EL在webserver中运行并生成HTML代码,而JavaScript是生成的HTML代码的一部分,而HTML代码又在webbrowser中运行。在浏览器中的页面上单击鼠标右键,然后查看源代码。你现在看到了吗?您应该以这样的方式编写JSP/JSTL/EL代码,以使其完全生成所需的HTML/JS代码。