从数组javascript向对象添加多个键/值对

时间:2017-02-13 20:26:52

标签: javascript arrays object

function arrayToList (arr){
    var dataStructure = null;
    for (var i = 0;i < arr.length; i++){
    dataStructure= {value: arr[i]};
    }
    return dataStructure;
}
arrayToList([1,2,3]);

我只是喜欢这个函数来创建一个像这样的对象:

dataStructure {
    value: 1;
    value: 2;
    value: 3;
}

到目前为止,我的代码一直在更新奇异值。我很确定我不能拥有&#34;价值&#34; (同名)多次,但是,我在尝试将其更改为value,value1,value2等时失败了

提前谢谢,抱歉新手问题

2 个答案:

答案 0 :(得分:1)

您可以在for循环之前定义对象,使用括号表示法来设置对象的属性。您还可以传递第二个参数来指定要连接到对象属性的值。

&#13;
&#13;
function arrayToList (arr, counter) {
    var dataStructure = {};
    for (var i = 0;i < arr.length; i++, counter++){
      dataStructure["value" + counter] = arr[i];
    }
    return dataStructure;
}
var res1 = arrayToList([1, 2, 3], 1);

var res2 = arrayToList([4, 5, 6], 4);

console.log(res1, res2);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

function arrayToList (arr){
    var dataStructure = {};                // data structure is initialized to an empty object
    for (var i = 0; i < arr.length; i++) {
      var key = "value" + i;               // generate the key (or var key = "value" + (i + 1); if you want to start with value1, value2 ...)
      dataStructure[key] = arr[i];         // set the value of the key 'key' to arr[i]
    }
  
    return dataStructure;
}

var obj = arrayToList([1,2,3]);

console.log(obj);