【问题标题】:get name of variables from user in javascript在javascript中从用户获取变量的名称
【发布时间】:2020-06-25 13:48:33
【问题描述】:

我有一个名为“汽车”的对象:

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 variables var let


    【解决方案1】:

    您不能以这种方式创建变量名,解决方法可能是创建一个对象:

    let carsArray=[{name:"a"},{name:"b"},{name:"c"}]
    
    let carObj = {};
    
    carsArray.forEach((car) => {
      carObj[car.name]=car
    });
    
    console.log(carObj)

    【讨论】:

    【解决方案2】:

    没有直接的方法可以将 javascript 本身命名的变量添加到本地范围。但通常全局作用域作为对象实例存在,这是可变的。就像客户网站 JS 上的 window

    // 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
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多