假设有两个数组:arr1 和 arr2,其中 arr1 由对象组成,每个对象具有多个属性,而 arr2 是一个字符串数组,其中的每个字符串都是 arr1 中某个对象的属性。我们想要找出那些具有属性值等于 arr2 中元素的 arr1 对象。
可以使用数组的 filter() 方法和 includes() 方法来实现这个目标。以下是代码示例:
const arr1 = [
{ name: "John", age: 25 },
{ name: "Jane", age: 30 },
{ name: "Bob", age: 20 }
];
const arr2 = ["John", "Bob"];
const result = arr1.filter(obj => arr2.includes(obj.name));
console.log(result);
// Output: [{ name: "John", age: 25 }, { name: "Bob", age: 20 }]
在上面的示例中,我们首先定义了两个数组:arr1 和 arr2。然后,我们使用 filter() 方法来遍历 arr1 数组的每个对象,并使用 includes() 方法来验证该对象的 name 属性是否包含在 arr2 中。如果是,则该对象将被包含在结果数组中。最后,我们输出结果数组。
注意,这个方法只能比较简单的值类型。如果需要比较更复杂的对象,可能需要使用更高级的比较方法。