关于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}
]
阅读 1.4k
2 个回答

如果是多个怎么合并没有说,这里给出单项合并

var combination = (obj1, obj2) => Object.keys(obj1).reduce((res,k1) => res.concat(Object.keys(obj2).map(k2 => ({[k1]: obj1[k1], [k2]: obj2[k2]}))), []);

var arr1 = [{ "a": 1, "b": 2, "c": 3 }];
var arr2 = [{ "d": 4, "f": 5}];

combination(arr1[0], arr2[0])

const arr1 = [{ "a": 1, "b": 2, "c": 3 }];
const arr2 = [{ "d": 4, "f": 5 }];

function cartesian(arr1, arr2) {
    const entries2 = Object.entries(arr1[0]);
    return Object.entries(arr2[0])
        .flatMap(([key, value]) => entries2.map(([k, v]) => ({ [key]: value, [k]: v })));
}

console.log(cartesian(arr2, arr1));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题