尝试将数组数组(内部数组只存储两个值)转换为对象。
这是我到目前为止所得到的:
function fromListToObject(array) {
var obj = {};
for (i in array) {
obj[array[i[0]]] = array[i[1]];
};
return obj
};
A1=[['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]];
console.log(fromListToObject(A1));

但是它给了我一个对象,其中键是数组对,值是"未定义。"
HALP?
答案 0 :(得分:2)
使用ES6,您可以使用
Object.assign
表示新对象,...
用于将数组作为参数,Array#map
用于返回数组中的单个对象,
var array = [['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]],
object = Object.assign(...array.map(([k, v]) => ({ [k]: v })));
console.log(object);

答案 1 :(得分:1)
将您的代码更改为:
function fromListToObject(array) {
var obj = {};
for (i in array) {
obj[array[i][0]] = array[i][1];
};
return obj
};
A1=[['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]];
console.log(fromListToObject(A1));
获取数组值时,您编写了错误的语法。
答案 2 :(得分:1)
您可以按如下方式使用Array.prototype.reduce()
:
const array = [['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]];
const object = array.reduce((result, [key, value]) => {
result[key] = value;
return result;
}, {});
console.log(object);

答案 3 :(得分:0)
试试这个:
function fromListToObject(array) {
return Object.assign.apply({}, array.map(function(subarray) {
var temp = {}
temp[subarray[0]] = subarray[1]
return temp
})
)
};
A1=[['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]];
console.log(fromListToObject(A1));
它使用这些键值对将所有数组展平为一个大对象:
{ make: 'Ford', model: 'Mustang', year: 1964 }