在 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()
和长度 属性。
希望对您有所帮助!
是否存在比这个更优雅的从数组创建对象的方法?
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()
和长度 属性。
希望对您有所帮助!