将数组名称转换为字符串

时间:2013-09-22 12:25:19

标签: javascript arrays

我有一堆数组,还有一堆文件夹,里面有我想要的文件。数组中的项目对应于文件名,数组名称与文件夹名称匹配。

所以我有

 var myArray = ['my', 'file', 'here'];
 var myArray2 = ['some', 'more', 'files'];

&安培;与音频文件类似。例如`myArray / my.mp3'

我正在尝试动态创建这样的字符串。我想以某种方式将我的数组名称转换为字符串,但显然无法完成。任何其他解决方案都非常赞赏。

3 个答案:

答案 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动态访问数组。