传递对象数组-意外令牌[
Passing object array - Unexpected token [
function showConfirm(reArray) {
var theHTML = '';
var optionArray = ["Option 1", "Option 2", "Option 3", "Option 4", "Option 5", "Option 6", "Option 7"];
var myButtons = {};
var j = 1;
for(var i = 0; i < reArray.length; i++){
theHTML +='<div style="text-align:center">'
+ '<span>'+j+'.</span> '
+ '<span>'+reArray[i].RoadNo+'</span> '
+ '<span>'+compass_image(reArray[i].Bearing)+'</span> '
+ '</div><br/>'
j++;
}
for(i = 0; i < reArray.length; i++){
ERROR HERE -----> var placeFunction = function(reArray[i]){
plotRoadInfo(reArray[i]);
$(this).dialog("close");
};
myButtons[optionArray[i]] = placeFunction;
}
$( "#dialog-modal" ).dialog({
height: 300,
modal: true,
buttons: myButtons
});
$('#multipleRE').append(theHTML);
}
这个函数得到一个对象数组(reArray),然后为jquery对话框创建一个按钮数组(myButtons)。我试图将reArray[I]传递给每个按钮将使用的函数,该函数将执行plotRoadInfo(reArray[I]);
我总是收到"意外的标记[",我也不明白为什么。
在JavaScript中不需要指定参数的类型,只需使用名称,然后将其用作函数中的数组。
var placeFunction = function(reArray){
plotRoadInfo(reArray[i]);
$(this).dialog("close");
};
我认为你甚至不需要指定它,尽管你指的是内部函数可以访问的数组。
var placeFunction = function() {
plotRoadInfo(reArray[i]);
$(this).dialog("close");
};
正如Pointy指出的那样,这将遇到i
变量共享的问题,因此每个函数将引用reArray[reArray.length]
,因为当i === reArray.length
时循环将完成。解决这个问题的一种常见方法是调用一个接受i
作为参数的函数,该函数将返回一个函数。
var placeFunction = (function (item) {
return function() {
plotRoadInfo(item);
$(this).dialog("close");
};
}(reArray[i]));
阅读闭包以更深入地理解它是如何工作的。下面是另一个这样的例子
您的语法不正确。
我相信你想做的是:
var placeFunction =
(function(arrayitem){
return function(){
plotRoadInfo(arrayitem);
$(this).dialog("close");
};
})(reArray[i]);
myButtons[optionArray[i]] = placeFunction;
为什么参数有索引?
function(reArray[i])
你的意思是
function(reArray)
相关文章:
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- jQuery$.getJSON抛出意外令牌
- 为什么我在下面的..of循环中得到意外令牌
- 组件中的ReactJS意外令牌
- AngularJS $http GET 请求到本地 JSON 文件返回语法错误:意外令牌]
- 巴别塔,意外令牌 (15:33) ::.
- Sencha 2.0 和 Codeigniter RESTful API 生成未捕获的语法错误:意外令牌:
- 在事件上使用 jquery 时出现意外令牌
- JSON 中位置 4 处的意外令牌<
- 意外令牌 ) 在我的代码中
- Electron 和 Babel 6 异步/等待抛出意外令牌
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- jQuery after() uncatch SyntaxError: 意外令牌 ILLEGAL
- 使用节点javascript的意外令牌ILLEGAL
- Javascript/JQuery-Chrome意外令牌
- Ajax 帖子未捕获语法错误:意外令牌非法
- angularjs-SyntaxError:请求从服务器返回时出现意外令牌
- jquery:使用ember的意外令牌C
- React本机项目中的意外令牌
- 解析有效的 JSON 得到“语法错误:意外令牌非法”