当前位置:首页 > JavaScript

js 实现对比

2026-02-01 14:20:25JavaScript

实现 JavaScript 对比功能

对象或数组的深度比较

使用递归方法比较对象或数组的每个属性或元素,确保嵌套结构也能被正确对比。

function deepEqual(a, b) {
  if (a === b) return true;
  if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) return false;
  const keysA = Object.keys(a);
  const keysB = Object.keys(b);
  if (keysA.length !== keysB.length) return false;
  for (const key of keysA) {
    if (!keysB.includes(key) || !deepEqual(a[key], b[key])) return false;
  }
  return true;
}

字符串或数字的简单比较

直接使用严格相等运算符 === 进行基本类型的比较。

js 实现对比

const str1 = 'hello';
const str2 = 'world';
console.log(str1 === str2); // false

const num1 = 42;
const num2 = 42;
console.log(num1 === num2); // true

数组的浅层比较

通过遍历数组元素进行逐项比较,适用于非嵌套数组。

js 实现对比

function shallowCompareArrays(arr1, arr2) {
  if (arr1.length !== arr2.length) return false;
  return arr1.every((item, index) => item === arr2[index]);
}

使用第三方库进行复杂比较

Lodash 的 isEqual 方法提供了完善的深度比较功能。

const _ = require('lodash');
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { a: 1, b: { c: 2 } };
console.log(_.isEqual(obj1, obj2)); // true

差异高亮显示

对于文本差异,可以使用 diff 算法实现高亮显示变化部分。

function highlightDiff(text1, text2) {
  const diff = [];
  const maxLength = Math.max(text1.length, text2.length);
  for (let i = 0; i < maxLength; i++) {
    if (text1[i] !== text2[i]) {
      diff.push(`<span style="color:red">${text2[i] || ''}</span>`);
    } else {
      diff.push(text2[i] || '');
    }
  }
  return diff.join('');
}

标签: 对比js
分享给朋友:

相关文章

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js实现截图

js实现截图

使用HTML2Canvas库实现截图 HTML2Canvas是一个流行的JavaScript库,可以将网页元素或整个页面转换为Canvas图像。安装方式: npm install html2canv…

js实现点击效果

js实现点击效果

实现点击效果的JavaScript方法 使用addEventListener绑定点击事件 通过document.getElementById或document.querySelector获取DOM元素…