数组对象互相匹配形成新的产品组合

皮卡丘UP 2020-02-18 02:25:13
请问怎么把例如下面的数组对象变成下面的形式啊?想了很久不知道该怎么做 var data=[ {课程: "100"}, {年龄: "10"}, {年龄: "20"}, {班期: "第一季"} ] [{ 课程: "100", 年龄: "10", 班期: "第一季" }, { 课程: "100", 年龄: "200", 班期: "第一季" }]
...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
皮卡丘UP 2020-02-18
  • 打赏
  • 举报
回复
可以了太棒了,谢谢大佬!
天际的海浪 2020-02-18
  • 打赏
  • 举报
回复

var data=[
    {课程: "100"},
    {年龄: "10"},
    {年龄: "20"},
    {班期: "第一季"}
];
var obj = {};
for (var i = 0; i < data.length; i++) {
	var n = Object.keys(data[i])[0];
	var v = data[i][n];
	if (obj[n]) {
		obj[n].push(v);
	} else {
		obj[n] = [v];
	}
}
var arr = [{}];
for (var n in obj) {
	var t = [];
	for (var i = 0; i < arr.length; i++) {
		for (var j = 0; j < obj[n].length; j++) {
			t.push(Object.assign({}, arr[i], {[n]:obj[n][j]}));
		}
	}
	arr = t;
}
console.log(JSON.stringify(arr,null,4));
代码用了es6的语法,要用Chrome浏览器执行

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧