我正在为谷歌地图的标记列表创建一个数组。该代码适用于一个 forEach
循环,但我还需要将新数组的元素添加到列表中。
我当前的代码在 result2 的 var
上显示以下错误消息。
Syntax error on token "var", ; expected
一个数组的代码
var results = [
<c:forEach var="cus" items="${customer}" varStatus="loop">[
"${cus.value.name}", "${cus.value.latitude}",
"${cus.value.longitude}", "${loop.index}",
"${cus.value.id}"], </c:forEach> ];
两个数组的代码
var results = "[" +
<c:forEach var="cus" items="${customer}" varStatus="loop">[
"${cus.value.name}", "${cus.value.latitude}",
"${cus.value.longitude}", "${loop.index}",
"${cus.value.id}"], </c:forEach>
var results2 = results + <c:forEach var="staff" items="${staff}" varStatus="loop">
+ "[" +
"${staff.value.name}", "${staff.value.latitude}",
"${staff.value.longitude}", "${loop.index}",
"${staff.value.id}"], </c:forEach>
+"]";
最佳答案
首先,在两个数组的代码中,您不希望方括号括在引号中。这将使您的整个数组 result
和 result2
成为字符串。
其次,results
缺少右括号,results2
缺少左括号。
第三,你不能只在 JavaScript 中 +
数组。有一个 concat()
方法可以实现这一点。
试试这个:
var results = [
<c:forEach var="cus" items="${customer}" varStatus="loop">
[
"${cus.value.name}",
"${cus.value.latitude}",
"${cus.value.longitude}",
"${loop.index}",
"${cus.value.id}"
],</c:forEach>
];
var results2 = results.concat([
<c:forEach var="staff" items="${staff}" varStatus="loop">
[
"${staff.value.name}",
"${staff.value.latitude}",
"${staff.value.longitude}",
"${loop.index}",
"${staff.value.id}"
],</c:forEach>
]);
关于javascript - 需要在JSP中将数组的元素添加到JavaScript的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30857693/