代码之家  ›  专栏  ›  技术社区  ›  Travis Heeter

如何给一个对象分配多个变量?

  •  0
  • Travis Heeter  · 技术社区  · 6 年前

    我已经定义了很多变量:

    var listOfCars = $('#cars');
    var car        = $('#currentCar');
    var carIndex   = $(car).index();
    var isFirstCar = carIndex == 0;
    var isLastCar  = carIndex == $(listOfCars).length - 1;
    // and many more in real life
    

    我想把它们全部放到一个对象中,其中变量的名称也是键的名称。如果我想重写每一行,我会这样做:

    var params = {
      listOfCars : listOfCars,
      car        : car,
      ...
    };
    

    借助Sublime,我可以创建一个变量名数组:

    var paramKeys = [ "listOfCars", "car", "carIndex"...];
    

    但我仍然坚持如何轻松地分配实际值。我希望能找到一个一行的。像这样:

    paramKeys.every( key => param[key] = ????? );
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Mark    6 年前

    您可以通过刷掉花括号的括号来做与数组符号几乎相同的事情。这将使用变量的名称作为键,使用值作为值:

    var listOfCars = ["list of cars"]
    var car        = "a car"
    var carIndex   = 26
    var isFirstCar = 0
    var isLastCar  = 10
    
    let obj = {listOfCars, car, carIndex, isFirstCar, isLastCar }
    console.log(obj)
        2
  •  0
  •   michaelitoh    6 年前

    就我个人而言,我认为你更容易使用财产速记:

    var listOfCars = [];
    var car = "car info";
    var params = { listOfCars, car }; 
    
    console.log(params)