Я пытаюсь написать создать простой объект из массива. В массиве хранится переменная:

Можно ли назначить имена переменных в качестве ключей в объекте? Например, у меня есть эти переменные, которые хранятся в массиве » статистика»

var name = "Sally"
var age = 35
var city = "New York"

var stats = [name, age, city] 

И я хочу создать объект, который использует имена переменных в качестве ключей и значения переменных в качестве значений объектов.

образец:

var obj = {"name": "Sally", "age": 35, "city": "New York"}

Я делаю это, создавая функцию и выполняя цикл for через массив. Прямо сейчас у меня есть ключ, назначенный индексу, который я знаю, что это неправильно, но я не знаю, как сделать его именами переменных.

function objCreator (array) {
    var obj = {}; 
    for (var i = 0; i < array.length; i++) {
        var key = i;
        var value = array[i];
        obj[key] = value; 
    }
    return obj; 
}

это то, что функция возвращает:

=> { '0': Sally',
  '1': 35,
  '2': 'New York'
 }

Есть предложения?

1 ответ

  1. Вы должны хранить имена ключей где-то

    var keyNames = ["name", "age", "city"];
    function objCreator (array) 
    {
        var obj = {}; 
        for (var i = 0; i < array.length; i++) 
        {
          obj[keyNames[i]] = array[i]; //observe change in this line here
        }
        return obj; 
    }