【发布时间】:2011-10-21 19:13:30
【问题描述】:
我现在想知道为什么会失败:
if (longest.length >= 3) {
for ( var i = 0; i < longest.length-1; i++) {
var $last[i] = longest[i].splice(-1).toString();
//if ( $( $last[i] ).closest(':jqmData(role="panel")') == "popover" ) {
//var gotoPage = $last[i];
// }
}
}
longest 是一个数组,其中包含数组元素。
我想遍历longest 中的数组数量,并从每个嵌套数组的最后一个元素创建变量。 .splice(-1).toString() 无法告诉我"missing ; before statement"
我做错了什么?
编辑: 最长的看起来像这样:
[[#menu, #menuSub1, #menuSub2], [#main, yield, yield], [#pop1, #pop1-1, #pop1-2]]
它包含在一个功能中,用于跟踪具有不同面板的移动应用程序中的浏览器历史记录。
EDIT2: 完成代码(Thx Mic):
if (longest.length >= 3) {
var $last = [];
for ( var i = 0; i < longest.length; i++) {
$last.push( longest[i][ longest[i].length - 1 ]);
if ( $( $last[i] ).closest(':jqmData(role="panel")').jqmData('panel') == "popover" ) {
var gotoPage = $last[i]; }
}
}
【问题讨论】:
-
应该是变量名。 $last0, $last1, $last2...
-
我相信 splice() 需要两个参数,都是正整数或零。
-
你有一个额外的“}”,你可能忘记注释掉了。
-
@Diodeus:我经常使用它,总是这样,所以我认为这无济于事。我认为要么链接 splice().toString() 不去,要么我不能像这样声明变量: $last[i]
标签: javascript jquery arrays for-loop