我有一堆数组,还有一堆文件夹,里面有我想要的文件。数组中的项目对应于文件名,数组名称与文件夹名称匹配。
所以我有
var myArray = ['my', 'file', 'here'];
var myArray2 = ['some', 'more', 'files'];
&安培;与音频文件类似。例如`myArray / my.mp3'
我正在尝试动态创建这样的字符串。我想以某种方式将我的数组名称转换为字符串,但显然无法完成。任何其他解决方案都非常赞赏。
答案 0 :(得分:0)
不确定我理解你的问题。 如果您需要灵活性,可以使用对象。在生命周期应用程序的开头初始化它,如下所示:
var obj = { name: 'tmp', value: null }
稍后,您可以根据用户操作为对象分配名称和值:
obj['name'] = 'chosenArray';
obj['value'] = myArrayTwo;
希望这有帮助,
R上。
答案 1 :(得分:0)
从技术上讲,您可以使用包含其名称的字符串来访问变量:
var array1 = [1,2,3,4];
var array2 = [5,6,7,8];
var pick = "array2";
var chosen = window[pick];
你也可以创建一个全局变量
var newvarname = "array3";
window[newvarname] = [9,10,11,12];
这是有效的,因为浏览器中的window
是包含所有变量和函数的预定义对象。除了使用window
更改和访问全局变量之外,您还可以迭代所有全局变量:
// Collect names of all globally defined arrays
arrays = [];
for (var n in window) {
if (window[n] && window[n].constructor == Array)
arrays.push(n);
}
但我可以想到很少有你可能想要这样做的情况(如果你有一个名为“foo”的函数或变量,并且该目录包含一个名为“foo”的文件,你真的想破坏你的功能吗? /变量?)。
您可能只需使用对象存储文件
var myobj = {};
myobj[filename] = ...;
答案 2 :(得分:0)
您希望使用以编程方式访问属性名称的对象:
var audioFiles = {
"myArray": ['my', 'file', 'here'],
"myArray2": ['some', 'more', 'files']
};
您可以轻松循环该对象,并通过bracket notation动态访问数组。