javascript - 遍历多个对象并在新对象中获取相似的键值
问题描述
嗨,我有对象数组,我正在尝试遍历它们并在新对象中具有相似的键值,这是我拥有的数据示例。
let newDats = [{"ID":1, "Name": "Ahmed", "Age":17, "Score":84, "Absentee":3},
{"ID":2, "Name": "Hassan", "Age":15, "Score":87, "Absentee":2},
{"ID":3, "Name": "Aisha", "Age":18, "Score":86, "Absentee":2}]
等等。但是,我想要的是:
data = [{ID:[1,2,3], Names:["Ahmed", "Hassan","Aisha"],
Ages:[17,15,18]}]
等等。我的最终目标是对数据的数字部分执行基本的描述性统计,所以如果有更好的想法,我很想听听我是 js 的新手。
附言
列名(对象键)可能不止于此而且未知,所以我想要一些动态的东西。
提前致谢。
解决方案
您可以使用以下功能。只需传递array
您要排序的。
function dataSorter(dataArr) {
const data = {};
for (const item in dataArr[0]) data[item] = [];
for (let i = 0; i < dataArr.length; i++) {
for (const item in dataArr[i]) {
data[item].push(dataArr[i][item]);
}
}
return data;
}
/* Example Below */
let newDats = [{
ID: 1,
Name: "Ahmed",
Age: 17,
Score: 84,
Absentee: 3
},
{
ID: 2,
Name: "Hassan",
Age: 15,
Score: 87,
Absentee: 2
},
{
ID: 3,
Name: "Aisha",
Age: 18,
Score: 86,
Absentee: 2
},
];
console.log(dataSorter(newDats));
.as-console-wrapper { max-height: 100% !important; top: 0; } /* Ignore this */
推荐阅读
- intellij-idea - 将 Java Web 项目 IBM RAD 迁移到 Intellij
- linux - 什么时候 /proc/
被删除? - cuda - 是否/是否有 cudaMalloc2DArray() 之类的函数?
- unit-testing - 如何使用 sinon stub 匹配对象的某些值
- javascript - 为什么向终端发送模拟按键不起作用?
- sql - SQL SELECTING * 然后从以结尾的列中选择值
- sql - 试图找到一个 Oracle 查询以找到第 n 个最高薪水,其中一个是经验最高的
- html - 我们如何在spring mvc中重定向页面
- java - java中的通用类型:如何定义返回多个不同类型的函数
- r - 适合 GLM 泊松的年龄调整率