javascript - 在javascript中从用户获取变量的名称
问题描述
我有一个名为“汽车”的对象:
function car(name) {
this.name = name;
this.position= 0;
}
我从用户那里得到汽车的数量:
let nubmerOfCars = +prompt("Input Number of Casr")
并根据用户输入的名称创建汽车,最后将汽车推入数组:
for (i = 0; i < nubmerOfCars; i++) {
let nameCar = prompt("Input name of car no." + `${i+1}` + ":");
let temp = new car(nameCar);
temp.name = nameCar;
nameCar=temp;
carsArray.push(nameCar);
carsArray.push(temp);
}
// user entered a,b,c for cars name
carsArray=[car{name:a},car{name:b},car{name:c}] // for 3 cars
但是,我想为每辆车创建一个带有用户输入名称的变量,例如:
function car() { //remove names's key
this.position= po;
}
//user entered a,b,c for cars name
let a = new car{...};
let b = new car{...};
let c = new car{...};
真的我想创建用户输入名称的变量我可以这样做吗?
解决方案
没有直接的方法可以将 javascript 本身命名的变量添加到本地范围。但通常全局作用域作为对象实例存在,这是可变的。就像window
在客户网站 JS 上一样:
// set variable x using the window object
window.x = "This is the value of x";
// accessing window.x only writing x
alert(x); // will alert: This is the value of x
// use string to define a variable name
window["y"] = "test";
// accessing...
alert(y); // will alert: test
// using other variable to define variable name
window[y] = 123;
// accessing...
alert(test): // will alert: 123
推荐阅读
- python-3.x - 根据另一列填充缺失数据
- pyspark - 用于 oracle 子查询的 Pyspark sql
- android - TypeConverters - 如何将对象数组保存到数据库?
- c# - 如何逐步混合 Powershell 和 c# 代码?
- python - Python 找不到 pyobdc。文件夹的名称可能是问题吗?
- c++ - 打包一个包含打包非 POD 元素的 std::array 的类
- azure - 订阅级别的嵌套部署的 Azure ARM 模板 resourceId 问题
- c# - 在 Windows 8.1 中延迟 LoginUI 直到自定义 shell 准备就绪
- python - Selenium Python Get Img SRC 返回实际图像数据
- python - 将维基表转为 CSV