关于js的一个数据拼接问题
现有如下两组数据:
var arr1 = [{ "a": 1, "b": 2, "c": 3 }];
var arr2 = [{ "d": 4, "f": 5 }];
怎么样能拼接成这样的:
var arr3 = [
{"a": 1, "d": 4},
{"a": 1, "f": 5},
{"b": 2, "d": 4},
{"b": 2, "f": 5},
{"c": 3, "f": 5}
]
2 人参与回答
function merge(...args) { const cartesian = function*(arr) { if (!arr.length) { yield {}; } else { const [[obj], ...rest] = arr; for (const key in obj) { for (const item of cartesian(rest)) { yield { [key]: obj[key], ...item }; } } } }; const ret = []; for (const obj of cartesian(args)) ret.push(obj); return ret; } console.dir(merge( [{ a: 1, b: 2, c: 3 }], [{ d: 4, e: 5 }], [{ f: 6 }] ));