教自己如何编码的一个问题是你错过了一些可能相当简单的事情:
我编写了一个函数,它接受文本文件(例如“someData1.txt”,“someData2.txt”等)将其内容转换为数组(“myArray”),并将其标题提取为变量(“fileName” “)。
我正处于解析文件名和数组的阶段,但我想用变量重命名每个数组,以便第一个数组变为“someData1”,依此类推。我已经有了一堆代码,它们会对每个不同的数组做各种各样的事情,所以如果我可以按照我希望的方式命名它们会很有用。
我认为我可以使用valueOf来完成它,就像在
中一样fileName.valueOf() = myArray;
但这不起作用。那我该怎么做?
谢谢!
答案 0 :(得分:1)
可能最简单的方法是使用一个对象,然后使用数组表示法为其分配键。让我告诉你:
var myObj = {};
myObj.someProperty = 1;
与
相同myObj['someProperty'] = 1; // note the quotes
因此,可以使用变量名作为键。在您的示例中:
var fileName = 'someData1';
var myObj = {};
myObj[fileName] = myArray; // myArray being file contents from your example
现在,当您想要访问内容时,您只需执行以下操作:
myObj.someData1
或:
myObj['someData1']
只需确保您没有重复的文件名,就可以了。
答案 1 :(得分:1)
您要做的是动态定义变量名称。
虽然在Javascript中是不可能的,但你可能会很棘手。 您有两个选择:
global[variableName] = array;
然后您将能够在范围内访问它:
global['toto'] = 42;
console.log(toto);
=> 42
这不是一个好习惯,但却是动态定义范围内变量的唯一方法。
var myArrays = [];
myArrays[variableName] = array;
在每种情况下,您实际上都定义了一个对象的属性。
你必须记住:
myArrays['toto'] = 42;
与:
相同myArrays.toto = 42;
所以要访问你的数组,只需:
myArrays.toto