🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

基于提供的函数判断第一个对象是否包含了第二个对象

2020-08-04

描述

基于提供的函数对两个对象进行比较,以确定第一个对象中是否包含有第二个对象中相同的属性值。

提示

  • 使用 Object.keys() 获取第二个对象的所有键
  • 使用 Array.prototype.every()Object.hasOwnProperty() 和提供的函数来检测与第一个对象中所有的键是否有相同的值
  • 如果没有提供函数的话,就使用全等操作进行值的相等判断

代码

const matchesWith = (obj, source, fn) =>
  Object.keys(source).every(key =>
    obj.hasOwnProperty(key) && fn
      ? fn(obj[key], source[key], key, obj, source)
      : obj[key] == source[key]
  );

示例

使用提供的函数判断第一个对象是否包含第二个对象:

const isGreeting = val => /^h(?:i|ello)$/.test(val);
matchesWith(
  { greeting: 'hello' },
  { greeting: 'hi' },
  (oV, sV) => isGreeting(oV) && isGreeting(sV)
);  // true

返回总目录

每天 30 秒系列之 JavaScript 代码


欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

推荐阅读
留下你的脚步