对象obj1 = {a:'1', b:'2', c:'3', d:'4', e:'5'}, obj2 = {a:'1', b:'2'} .我只想取出obj1中包含obj2中的部分怎么实现
时间: 2023-12-23 09:04:49 浏览: 50
可以使用 JavaScript 中的 Object.entries() 方法和 Array.reduce() 方法来实现。具体步骤如下:
1. 使用 Object.entries() 方法将 obj2 转换为一个二维数组,其中每个子数组代表 obj2 中的一个键值对。
2. 使用 Array.reduce() 方法遍历 obj1 中的所有键值对,对于每个键值对,判断其键是否包含在 obj2 中。
3. 如果键包含在 obj2 中,就将该键值对添加到一个新的对象中。
代码示例:
```
const obj1 = {a:'1', b:'2', c:'3', d:'4', e:'5'};
const obj2 = {a:'1', b:'2'};
const result = Object.entries(obj2).reduce((acc, [key, value]) => {
if (obj1.hasOwnProperty(key)) {
acc[key] = obj1[key];
}
return acc;
}, {});
console.log(result); // 输出 { a: '1', b: '2' }
```
上述代码中,使用了 destructuring assignment 语法解构出了 Object.entries() 返回的子数组中的 key 和 value。然后使用 hasOwnProperty() 方法判断 obj1 中是否包含 obj2 中的键,如果包含则将其添加到一个新的对象中,并返回该对象。最终输出结果为包含 obj2 中所有键值对的新对象。
阅读全文