当前位置:问答中心关于js的一个数据拼接问题

关于js的一个数据拼接问题

0
水深志清 管理员 提问于 2年 前

现有如下两组数据:

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 人参与回答
0
码云 管理员 发布于 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 }]
));
0
空山新雨⁣ 管理员 发布于 2年 前
var arr1 = [{ "a": 1, "b": 2, "c": 3 }];
var arr2 = [{ "d": 4, "f": 5 }];
var arr3= []

for (key1 in arr1[0]){
    for(key2 in arr2[0]){
        arr3.push({[key1]:arr1[0][key1],[key2]:arr2[0][key2]})
    }
}
console.log(arr3);