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

时间:2018-09-18 19:01:59

标签: javascript

我已经定义了很多变量:

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 个答案:

答案 0 :(得分:1)

通过扫除花括号的括号,您可以执行与数组符号几乎相同的操作。这会将变量名称用作键,将值用作值:

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)

答案 1 :(得分:0)

我个人认为使用Property Shorthand更容易:

var listOfCars = [];
var car = "car info";
var params = { listOfCars, car }; 

console.log(params)