【问题标题】:I am trying to write a create a simple object from an array. In my array, I have variable stored:我正在尝试编写一个从数组创建一个简单对象。在我的数组中,我存储了变量:
【发布时间】:2016-05-25 12:32:56
【问题描述】:

有没有办法将变量名指定为对象中的键?例如,我有这些变量存储在数组“stats”中

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'
 }

有什么建议吗?

【问题讨论】:

  • 数组不知道变量的名称。您需要明确说明,例如var obj = {name, age, city}(不带数组,ES6 简洁表示法)或var obj = {name: stats[0], age:stats[1], city:stats[2]}(如果统计信息始终按相同顺序)

标签: javascript variables object keyvaluepair


【解决方案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; 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多