类型错误:';未定义';不是Javascript中的对象
我有一段Javascript代码,它将字符串值分配给字符串数组。 不幸的是,如果我尝试向数组中添加多个字符串,我的UI模拟器(在JS代码上运行)会意外关闭。我已尝试调试,但找不到任何东西。我在问题所在的地方附上那段代码。也许你们能找到一些瑕疵?在弹出按钮上,单击我在UI上选择的值应该存储在数组中,我在服务器端有一个相应的变量来处理这个字符串数组类型错误:';未定义';不是Javascript中的对象,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我有一段Javascript代码,它将字符串值分配给字符串数组。 不幸的是,如果我尝试向数组中添加多个字符串,我的UI模拟器(在JS代码上运行)会意外关闭。我已尝试调试,但找不到任何东西。我在问题所在的地方附上那段代码。也许你们能找到一些瑕疵?在弹出按钮上,单击我在UI上选择的值应该存储在数组中,我在服务器端有一个相应的变量来处理这个字符串数组 _popupButtonClick: function (button) { var solutions = this.
_popupButtonClick: function (button) {
var solutions = this._stateModel.get('solutionName');
var i;
var solutionsLength = solutions.length;
var selectedSolution = [solutionsLength];
this.clearPopupTimer();
if (button.position === StatusViewModel.ResponseType.Ok) {
for(i=0;i<solutionsLength;i++)
{
if(this._list.listItems[i].selected)
{
selectedSolution[i] = this._list.listItems[i].options.value;
}
}
this._stateModel.save({
selectedsolutions: selectedSolution,
viewResponse: StatusViewModel.ResponseType.Ok
});
} else {
this._stateModel.save({
viewResponse: StatusViewModel.ResponseType.Cancel
});
}
}
\u弹出按钮点击:功能(按钮){
var solutions=this.\u stateModel.get('solutionName');
var i;
var solutionsLength=solutions.length;
var selectedSolution=[solutionsLength];
这个.clearPopupTimer();
if(button.position==StatusViewModel.ResponseType.Ok){
对于(i=0;i变化
到
这会使阵列中有一个可能导致崩溃的额外项
而且
你有一个
if(this._list.listItems[i].selected)
{
selectedSolution[i] = this._list.listItems[i].options.value;
}
但是没有对应的其他值,因此数组中有未定义的i
值,这些值没有输入if
也许添加一个空字符串可以解决这个问题:
if(this._list.listItems[i].selected)
{
selectedSolution[i] = this._list.listItems[i].options.value;
}
else
{
selectedSolution[i] = "";
}
改变
到
这会使阵列中有一个可能导致崩溃的额外项
而且
你有一个
if(this._list.listItems[i].selected)
{
selectedSolution[i] = this._list.listItems[i].options.value;
}
但是没有对应的其他值,因此数组中有未定义的i
值,这些值没有输入if
也许添加一个空字符串可以解决这个问题:
if(this._list.listItems[i].selected)
{
selectedSolution[i] = this._list.listItems[i].options.value;
}
else
{
selectedSolution[i] = "";
}
代码看起来不错,但似乎有一段代码可能会导致错误。例如,您正在分配var selectedSolution=[solutionsLength];
,例如solutionsLength为5
,然后循环运行5次
for(i=0;i<solutionsLength;i++) // runs for 5 times
{
if(this._list.listItems[i].selected)
{
// but selectedSolution = [5]; which is on 0th index and from 1st to 4th index it is undefined
selectedSolution[i] = this._list.listItems[i].options.value;
}
}
在初始化时,将其更改为
var selectedSolution = [];
希望这能解决您的问题。代码看起来不错,但似乎有一段代码可能会导致错误。例如,您正在分配var selectedSolution=[solutionsLength];
例如solutionsLength为5
,然后循环运行5次
for(i=0;i<solutionsLength;i++) // runs for 5 times
{
if(this._list.listItems[i].selected)
{
// but selectedSolution = [5]; which is on 0th index and from 1st to 4th index it is undefined
selectedSolution[i] = this._list.listItems[i].options.value;
}
}
var selectedSolution = [solutionsLength];
在初始化时,将其更改为
var selectedSolution = [];
希望这能解决你的问题
var selectedSolution = [solutionsLength];
将该值保留在selectedSolution变量中
var selectedSolution = [3];
selectedSolution[0] gives the values as 3
所以说得简单点
var selectedSolution = [];
将该值保留在selectedSolution变量中
var selectedSolution = [3];
selectedSolution[0] gives the values as 3
所以说得简单点
var selectedSolution = [];
StatusViewModel是javascript对象吗?如果不是,请将其设置为“OK”和“CANCEL”StatusViewModel用于处理按钮按下。我在服务器端也有一个对应的映射。这很好。问题在for循环中,如果条件是我所想的StatusViewModel,它是javascript对象吗?如果不是,只将其设置为“OK”和“CANCEL”StatusViewModel用于处理按钮按下。我在服务器端也有一个相应的映射。这很好。问题在for循环中,如果条件是我所想的,感谢您在如此短的时间内回复。当然,我会尝试您的方法,如果它有效,我会回复您(即使它不起作用:p)非常感谢您在如此短的时间内回复。当然,我会尝试您的方法,如果它有效,我会回复您(即使它不起作用:p)