在 JavaScript 中将数组转换为对象

Convert an array into an object in JavaScript

是否存在比这个更优雅的从数组创建对象的方法?

var createObject = function(){
var myArray= generateArray();
var myObject = {
    question : myArray[0],
    answerA : myArray[1],
    answerB : myArray[2],
    answerC : myArray[3],
    answerD : myArray[4]
    };
return myObject;
}

您可以定义一个属性映射:

var createObject = function(){
    // The map should have the attribute names set in order defined in `myArray`
    var map = ["question", "answerA", "answerB", "answerC", "answerD"]
    var myArray = generateArray();
    var myObject = {};
    for(var i in map)
        myObject[map[i]] = myArray[i];
    return myObject;
}

你的背景是什么? Python?

 var values = generateArray();
 var obj = {};
 ["question", "answerA", "answerB", "answerC", "answerD"].forEach(function(item, idx) {
     obj[item] = values[idx];
 });

 return obj;

尝试超越 'A''B''C''D'

  function arrayToObject ( array ) {
    return array.reduce(
      function ( object, cell, index ) {
        if (index > 0) object['answer' + String.fromCharCode(64 + index)] = cell;
        else           object['question'] = cell;
        return object;
      }, {}
    );
  }

如果你想要一个以数组作为参数的函数,returns 一个对象,我会这样做:

var toObject = function(arr) {
  var newObj = {};

  for(var i = 0; i < arr.length; i++) {
    newObj[i] = arr[i];
  }
  return newObj;
};

但是,请记住 Javascript 数组只是具有更多可用方法的对象,例如 push()pop() 和长度 属性。

希望对您有所帮助!