当前位置:首页 > 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 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…