可以使用双重循环来比较两个对象数组,并找到匹配的颜色ID。然后,可以使用Array.prototype.map()方法创建一个新的数组。
下面是一个使用JavaScript解决这个问题的示例代码:
const array1 = [
{ id: 1, color: 'red' },
{ id: 2, color: 'blue' },
{ id: 3, color: 'green' }
];
const array2 = [
{ id: 1, color: 'red' },
{ id: 2, color: 'yellow' }
];
// 创建一个新的数组来存储匹配的颜色ID
const matchedColorIds = [];
// 比较两个对象数组并找到匹配的颜色ID
for (let i = 0; i < array1.length; i++) {
for (let j = 0; j < array2.length; j++) {
if (array1[i].color === array2[j].color) {
matchedColorIds.push(array1[i].id);
break;
}
}
}
console.log(matchedColorIds); // 输出: [1]
// 使用Array.prototype.map()方法创建一个新的数组
const newArray = matchedColorIds.map(id => {
return { id: id };
});
console.log(newArray); // 输出: [{ id: 1 }]
在上面的示例代码中,首先定义了两个对象数组array1
和array2
。然后,创建一个新的空数组matchedColorIds
来存储匹配的颜色ID。接下来,使用双重循环遍历两个对象数组,并使用条件语句检查颜色是否匹配。如果颜色匹配,则将匹配的颜色ID添加到matchedColorIds
数组中。最后,使用Array.prototype.map()方法创建一个新的数组newArray
,其中每个元素都是包含匹配的颜色ID的对象。最后,将matchedColorIds
和newArray
打印到控制台上进行验证。