【发布时间】:2011-11-07 15:40:42
【问题描述】:
我目前正在将 javascript 文件链接到 html 页面,并且在使用该 javascript 文件中的函数时,返回值基本上被删除并显示为未定义,即使在函数本身中定义了值(这可能是非常令人困惑,我将只显示代码,它应该是有意义的):
functions.js
function addActivity(contactNameSelected, username) {
var returnArray = [];
//post to .php
if(data.added)
{
var newEvent = [];
newEvent['id'] = data.id;
newEvent['date'] = formattedDate;
returnArray.push(true);
returnArray.push(newEvent);
return returnArray; //when i debug, this has a value and is a valid array at this point
}
else
{
returnArray.push(false);
returnArray.push(data.message); //when i debug, this has a value and is a valid array at this point
return returnArray;
}
}
home.html
var response = [];
response = addActivity(contactNameSelected, username); //although valid above, undefined here
if(response[0]) //error b/c response is undefined
{
//do stuff if successful
}
else{
//do other stuff if unsuccessful
}
如果我只返回一个字符串,它可以正常工作,但由于某种原因,如果我尝试返回一个数组,它只是未定义的。这是为什么呢?
谢谢!
【问题讨论】:
-
returnArray 定义在哪里?
-
“newEvent”变量应该是一个普通对象,而不是一个数组实例,因为您只是将它用作普通对象。
-
要么缺少 returnArray 的定义,要么您已经剪掉了函数可能(并且在这种情况下)提前返回的部分代码。另外,一个小问题,但
var response = [];是多余的,因为后面的行中的函数应该返回一个新数组。 -
@MischaNix 抱歉,我剪掉了定义 returnArray 的代码部分。关于次要的挑剔,我有它,但改变了它 b/c 我想问题可能是我需要指定即将到来的类型是一个数组。
-
@Pointy 我不确定我是否明白你在说什么。我使用 newEvent 作为关联数组,那个普通对象怎么样?
标签: javascript arrays return return-value undefined