newbee to Javascript ...
我在使用函数结果更新全局变量时遇到了问题。当我输出变量时,它表示' 未定义 '。
我想要做的是循环一个数组( problemArr )并在变量中创建一个字符串( stringA )。
然后将 stringA 添加到另一个变量 stringMessage 并输出stringMessage的值。
例如:您最大的问题是:Prob1,Prob2,Prob3,
我已经有了一个名为problemArr的数组,该数组从另一个函数中更新,这个函数我还没有包含在这段代码中。 (这部分有效,我能够证明数组得到了更新)。
我已经在这里阅读了一些关于功能范围和提升的帖子,我认为这些帖子可能与它有关。不确定。
var stringA = ' ';//initialize variable which will form list of problems
var stringMessage ='Your biggest problems are :' + stringA; // Output
var problemArr[]; //Empty array. Gets elements from another function - this part works, I've checked.
//create list of problems
function messageString(){
for(i in problemArr){
stringA = stringA + problemArr[i] + ',';
}
return stringA;
}
答案 0 :(得分:1)
你需要定义你的数组,然后调用你创建的函数,如下所示。
var stringA = ' ';//initialize variable which will form list of problems
var problemArr = ['1','2','3']; // <<<<<<<<< define the array
//create list of problems
function messageString(){
for(i in problemArr){
stringA += problemArr[i] ;
// do not add a comma after the last array item
if(i < problemArr.length - 1)
{
stringA += ',';
}
}
}
messageString(); // <<<<<<<<< call the function
var stringMessage ='Your biggest problems are :' + stringA; // Output
document.write(stringMessage);
&#13;
修改强>
要匹配您的情况,请调用该函数创建消息字符串并填充stringA
,然后将其设置为最后的输出var stringMessage ='Your biggest problems are :' + stringA; // Output
答案 1 :(得分:1)
尝试用字符串替换字符串,字符串总是必须是一个新变量,所以而不是stringA = stringA你需要newString = stringA +“,”
我重构了你的代码,这将做你想做的事情:
(function () {
var stringA;
var stringMessage = "Your biggest problems are : ";
var problemArr = [1, 2, 3, 4, 5, 6];
for (var i = 0; i < problemArr.length; i++) {
stringA = problemArr[i] + ",";
stringMessage += stringA;
}
alert(stringMessage);
})()
“+ =”运算符将某些内容附加到现有对象
例如1 += 2
等于3
例如"hello" += "world"
等于“helloworld”
答案 2 :(得分:0)
看起来你只是想尝试将数组的内容添加到字符串变量中。为什么不这样做:
var problemArr = ["99 problems","but a b****","ain't one"];
//or just use the array you created before
var problemsAsString = problemArr.join(", ");
//converts the array to a string and puts a ", " between each element
var stringMessage = 'Your biggest problems are : ' + problemsAsString;
alert(stringMessage); //output, or do whatever you want with it