使用变量重命名数组

Renaming Array with Variable

本文关键字:数组 重命名 变量      更新时间:2023-09-26

自学如何编码的问题之一是你错过了一些可能相当简单的事情:

我写了一个函数,它接受文本文件(例如"someData1.txt","someData2.txt"等)将它们的内容转换为数组("myArray"),并将它们的标题提取为变量("文件名")。

我正处于解析文件名和数组的阶段,但我想用变量重命名每个数组,以便第一个数组变成"someData1",依此类推。我已经有一堆代码,它们将为每个不同的数组做各种事情,所以如果我能按照我想要的方式命名它们,那将很有用。

我想我可以使用 valueOf 来做到这一点,就像

fileName.valueOf() = myArray;

但这行不通。那么我该怎么做呢?

谢谢!

可能最简单的方法是使用对象,然后使用数组表示法为其分配键。让我向您展示:

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']

只要确保您没有重复的文件名,您就可以开始了。

您要做的是动态定义变量名称。

虽然在Javascript中是不可能的,但你可能会很棘手。然后您有两个选择:

  1. 使用全局作用域对象来存储变量(不是一个好的做法):
global[variableName] = array;

然后您将能够在 范围内访问它 :

global['toto'] = 42;
console.log(toto);
=> 42

这不是一个好的做法,但这是动态定义作用域中变量的唯一方法。

  1. 使用对象来存储它:
var myArrays = [];
myArrays[variableName] = array;

在每种情况下,您实际上都定义了对象的属性。

您必须记住:

myArrays['toto'] = 42;

myArrays.toto = 42;

因此,要访问您的阵列,只需执行以下操作:

myArrays.toto