我正试图想出一种方法来创建一个总结统计数据集的新对象。
此新对象的信息来自以下形式的数组
现在,我需要将这些数据存储在一个新对象中,例如:
{
blocks: [41, 22, 3, 4],
delivered: [23, 11, 2, 1]
}
并访问它,如object.blocks [0],object.delivered [0],object.blocks 1,object.delivered 1等等
应该自动创建'blocks','deliver'。
这甚至可能吗?
答案 0 :(得分:0)
我无法想到一个内置函数将一个对象数组转换成一个更好的术语“数组对象”。但是执行此操作的javascript代码并不是很困难:
function arrayOfObjToObjOfArrays(arr) {
toRet = { blocks: [], delivered: [] };
for(var i = 0; i < arr.length; ++i) {
var obj = arr[i];
for(var k in obj) {
if(k === 'blocks' || k === 'delivered') {
toRet[k].push(obj[k]);
}
}
}
return toRet;
}
这尚未经过测试,但它应该足以让您入门。
答案 1 :(得分:0)
只需循环遍历数组并选择值,然后将它们存储在某处。
例如:
var result = {};
arr.forEach(function (obj) {
Object.keys(obj).forEach(function (key) {
if (key === "blocks" || key === "delivered") {
if ( ! Array.isArray(result[key])) {
result[key] = [];
}
result[key].push(obj[key]);
}
});
});