Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从变量名动态创建变量_Javascript - Fatal编程技术网

Javascript 从变量名动态创建变量

Javascript 从变量名动态创建变量,javascript,Javascript,我有一个动态数量的文件(结构,tab1,tab2,tab3,…),我加载到我的网站。 对于其中的每一个,我想定义变量,如“总计”、“不同” 因为将它们放在[window]中并不好,所以我创建了dbVariables对象来将变量存储在那里。我现在有一个for循环来加载文件,我甚至可以动态创建dbVariable.tab1、dbVariable.tab2等,但是我如何将最后的信息缝合到它呢 var dbVariables= {}; for (i=0; i< fileNamesArray.len

我有一个动态数量的文件(结构,tab1,tab2,tab3,…),我加载到我的网站。 对于其中的每一个,我想定义变量,如“总计”、“不同”

因为将它们放在[window]中并不好,所以我创建了dbVariables对象来将变量存储在那里。我现在有一个for循环来加载文件,我甚至可以动态创建dbVariable.tab1、dbVariable.tab2等,但是我如何将最后的信息缝合到它呢

var dbVariables= {};
for (i=0; i< fileNamesArray.length; i++){
    filename = fileNamesArray[i];
    processData(filename);
}
});
// the ".total" is not accepted :-(
function processData(filename){
    dbVariables[filename].total = 123;
};
var dbVariables={};
对于(i=0;i
在添加总计之前,您需要设置
dbVariables[filename]
。请尝试以下操作:

function processDatra(filename){
    if(typeof dbVariables[filename] === 'undefined') dbVariables[filename] = {};
    dbVariables[filename].total = 123;
};
你不能这样做:

dbVariables[filename].total = 123;
因为没有
dbVariables[filename]
,所以您可以在未定义上设置属性。您需要先添加它

function processData(filename){
    dbVariables[filename] = {};
    dbVariables[filename].total = 123;
};

但是如果
dbVariables
是一个数组而不是一个对象,您可能会感觉更好,除非您确定没有重复的
filename

您所说的“不被接受”是什么意思?这意味着全局变量不是一个好主意,这是真的。您能修复代码中的打字错误吗?它使人们更容易理解您的问题,而不必猜测
processData
processDatra
是否相同。
function processData(filename){
    dbVariables[filename] = {};
    dbVariables[filename].total = 123;
};