我有一堆数组,还有一堆文件夹,里面有我想要访问的文件。数组中的项目对应于文件名,数组名与文件夹名匹配。
所以我有
var myArray = ['my', 'file', 'here'];
var myArray2 = ['some', 'more', 'files'];
与音频文件类似。例如 `myArray/my.mp3'
我正在尝试动态创建这样的字符串。我想以某种方式将我的数组名称转换为字符串,但显然这无法完成。非常感谢任何其他解决方案。
我有一堆数组,还有一堆文件夹,里面有我想要访问的文件。数组中的项目对应于文件名,数组名与文件夹名匹配。
所以我有
var myArray = ['my', 'file', 'here'];
var myArray2 = ['some', 'more', 'files'];
与音频文件类似。例如 `myArray/my.mp3'
我正在尝试动态创建这样的字符串。我想以某种方式将我的数组名称转换为字符串,但显然这无法完成。非常感谢任何其他解决方案。
不确定我是否理解你的问题。如果你想要灵活性,你可以使用一个对象。在您的生命周期应用程序开始时对其进行初始化,如下所示:
var obj = { name: 'tmp', value: null }
稍后,您可以根据用户操作为对象分配名称和值:
obj['name'] = 'chosenArray';
obj['value'] = myArrayTwo;
希望这可以帮助,
R。
从技术上讲,您可以使用包含变量名称的字符串访问变量:
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] = ...;
您想使用属性名称可通过编程访问的对象:
var audioFiles = {
"myArray": ['my', 'file', 'here'],
"myArray2": ['some', 'more', 'files']
};
您可以轻松地循环该对象,并通过括号符号动态访问数组。