在JavaScript中,比较对象键和数组并返回新对象可以通过以下方式实现:
let result = {};
Object.keys()
方法获取对象的所有键,并使用Array.prototype.reduce()
方法遍历这些键。在遍历过程中,我们可以使用Object.assign()
方法将键和对应的值添加到结果对象中:Object.keys(obj).reduce((acc, key) => {
if (otherObj.hasOwnProperty(key)) {
acc[key] = obj[key];
}
return acc;
}, result);
在上述代码中,obj
是第一个对象,otherObj
是第二个对象。
Array.prototype.filter()
方法过滤出两个数组中共有的元素,并使用Array.prototype.reduce()
方法将过滤后的元素添加到结果数组中:result = arr1.filter(item => arr2.includes(item)).reduce((acc, item) => {
acc.push(item);
return acc;
}, []);
在上述代码中,arr1
是第一个数组,arr2
是第二个数组。
完整的代码如下:
function compareObjectsAndArrays(obj, otherObj, arr1, arr2) {
let result = {};
Object.keys(obj).reduce((acc, key) => {
if (otherObj.hasOwnProperty(key)) {
acc[key] = obj[key];
}
return acc;
}, result);
result = arr1.filter(item => arr2.includes(item)).reduce((acc, item) => {
acc.push(item);
return acc;
}, []);
return result;
}
这个函数接受四个参数:obj
是第一个对象,otherObj
是第二个对象,arr1
是第一个数组,arr2
是第二个数组。它会返回一个包含比较结果的新对象或数组。
这个函数的应用场景可以是在需要比较两个对象或数组中共有的键或元素时使用。例如,可以用于合并两个对象中共有的属性,或者找出两个数组中共有的元素。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云