[英]Converting array of arrays into object?
尝试将数组数组(其中内部数组仅存储两个值)转换为对象。
这是我到目前为止所得到的:
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));
但它给了我一个对象,其中键是数组对,而值是“未定义的”。
哈?
将您的代码更改为:
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));
获取数组值时,您编写了错误的语法。
您可以按如下方式使用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);
尝试这个:
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 }
Object.fromEntries
方法可以简单地做到这一点
var array = [['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]]; var obj = Object.fromEntries(array); console.log(obj);
更多关于Object.fromEntries()
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.