当前位置:首页 > 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实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取…

js实现点击显示和隐藏

js实现点击显示和隐藏

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