在我正在设计的网站的一部分中,用户可以选择设计一个具有多个属性的问题(即问题文本,姓名,答案值等)。
按下按钮,我想调用一个函数将这个问题的属性存储在一个数组中。
但是,用户可以提出多个问题,我需要每个问题的数组都有一个唯一的名称,因为它们必须是全局数组,所有这些都可供以后使用。
话虽如此,我已经研究过,并且无法想出一种方法,可以根据上下文创建不同命名的数组。
理想情况下,我想要一些增加变量名称的东西,即myArray1,myArray2,但却无法找到这样的东西。
答案 0 :(得分:0)
您可以使用JSON代替数组
e.g。声明一个像
这样的变量var questions = [];
现在创建一个json并将其添加到问题
questions.push({
questionText : "asdfasdfasdf",
name : "asdfasdf",
ans : "asdfasdf"
});
现在您可以像问题[0] .name
一样访问数组答案 1 :(得分:0)
var myFn = (function() {
var counter = 1;
return function() {
var ret = window['myArray' + counter] = [];
counter++;
return ret;
};
})();
call myFn()将返回一个数组并将其附加到全局命名空间。
和其他人一样,我不建议这样做但是有可能。
答案 2 :(得分:0)
而不是Array,使用Object作为全局变量的命名空间。
var myGlobalArray = {}
可以通过两种方式调用对象的属性:
myGlobalArray.prop //like typical object
myGlobalArray["prop"] //like an array
我们可以利用后一种访问财产的方式。
现在您可以在代码中设置
var myGlobalArray["myArray1"] = {
"question" : "abcd efgh",
"name": "sdas asdasda",
"answer" : "value sdsd dvvsd"
}
和
var myGlobalArray["myArray2"] = {
"question" : "abcd efgh",
"name": "sdas asdasda",
"answer" : "value sdsd dvvsd"
}
以后可以通过以下方式访问:
myGlobalArray["myArray1"], myGlobalArray["myArray2"], ....etc
或摧毁他们:
delete myGlobalArray["myArray2"];