我正在尝试将两个Javascript对象(如下所示)与nodejs,cheerio和CSS选择器合并。
对象是分开的,因为它们是从两个不同的网页中提取的,并且我无法在正在创建obj1
的map函数中使用异步函数。
帮助解决方案或仔细考虑整个过程将非常有帮助。
obj1 = [
{ position: 1, data: 'AAA' },
{ position: 2, data: 'BBB' }
]
obj2 = [
{ position: 1, review: 'abc' },
{ position: 2, review: 'def' }
]
output = [
{ position: 1, data: 'AAA', review: 'abc' },
{ position: 2, data: 'BBB', review: 'def' }
]
您可以同时使用Array.map和Array.find。
您遍历一个数组,并从另一个数组中找到相应的值。
const obj1 = [{ position: 1, data: "AAA" }, { position: 2, data: "BBB" }];
const obj2 = [{ position: 1, review: "abc" }, { position: 2, review: "def" }];
const result = obj1.map(obj1 => {
const otherObj = obj2.find(obj2 => {
return (obj1.position == obj2.position);
});
return {
...obj1,
review: otherObj ? otherObj.review : undefined
};
});
console.log(result)