首页 > 解决方案 > 如何将多个变量分配给一个对象?

问题描述

我有很多已经定义的变量:

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] = ????? );

标签: javascript

解决方案


您可以通过滑出花括号的括号来执行与数组表示法几乎相同的操作。这将使用变量的名称作为键和值作为值:

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)


推荐阅读