_.isEqual()
是 Lodash 提供的一个函数,用于比较两个值是否相等。它会递归地比较两个对象的属性和值,以判断它们是否相等。
这个函数的作用是:
-
深度比较对象
:递归比较两个对象的每一个属性和嵌套对象的属性,判断它们是否相等。
-
数组比较
:对比两个数组的每个元素,确保它们在相同位置上的值相等。
-
其他类型比较
:可以比较其他 JavaScript 基本类型(如字符串、数字、布尔值等)。
_.isEqual(value, other)
value (*): 用来比较的值。
other (*): 另一个用来比较的值。
(boolean): 如果 两个值完全相同,那么返回 true,否则返回 false。
返回值是一个布尔值,如果两个值是完全相等的(包括对象、数组、基本类型等),则返回
true
,否则返回
false
。
值得注意的是,
_.isEqual()
是一种深度比较,因此它会遍历对象的所有嵌套属性以确保相等性。这对于比较复杂的数据结构(例如嵌套的对象或数组)特别有用。
是一种深度比较,因此它会遍历对象的所有嵌套属性以确保相等性。这对于比较复杂的数据结构(例如嵌套的对象或数组)特别有用。是 Lodash 提供的一个函数,用于比较两个值是否相等。它会递归地比较两个对象的属性和值,以判断它们是否相等。返回值是一个布尔值,如果两个值是完全相等的(包括对象、数组、基本类型等),则返回。
什么是
深度
比较
lodash
.
isE
qual
:
比较
对象的键值对,都一样则为true,反之false;
其中,若对象的属性值是引用类型,
比较
的是实际值不是地址(当然,若地址是一样的,那么肯定相等,return true);
默认不会
比较
函数
1.不是对象,直接返回
比较
结果,return ===
2. 地址相等的对象 return true
3. 两个都是对象||数组
(1)
比较
两对象keys的个数
(2)以obj1的key为基准,和obj2依次递归
比较
function
isE
qual
(
原生JS手写实现
深度
比较
函数——JS手写系列(二)前言思路具体实现
在JavaScript中,对于
深度
比较
,如果是基本数据类型,可以通过===便可完成实现。而对于引用数据类型,就要麻烦许多,由于栈空间中仅保存引用数据类型在堆空间中位置的地址指针(此处涉及到栈空间和堆空间,你是否了解该知识点呢?嘻嘻嘻),所以无法使用===进行
比较
。此时,便只能设计专门的函数进行引用数据类型的
深度
比较
。
核心思想:
深度
比较
两个对象,就是要
深度
比较
对象的每一个元素。=> 递归
function is
Lodash
是一个一致性、模块化、高性能的 JavaScript 实用工具库,Node.js版本需>6。
lodash
是默认的commonjs版本,是为了良好的浏览器兼容性, 它使用了旧版es5的模块语法,体积大。
Lodash
是一个非常流行的 JavaScript 实用工具库,涵盖了数组处理、对象操作、函数式编程、字符串处理等。
lodash
-es 是
Lodash
库的 ECMAScript 模块版本,支持 ES6 模块的环境下提供的模块化版本。
function
isE
qual
(obj1, obj2) {
// 先判断这俩是不是对象或者数组类型的
if (typeof (obj1) !== "object" && obj1 !== null && typeof (obj2) !== "object" && obj2 !== null) {
return obj1 === obj2
// 如果特意传的就是两个指向同一地址的对象
// 实现效果
let a = { name: 'zfb', age: 18, major: { main: 'math', other: 'chinese'} }
let b = { name: 'zfb', age: 18, major: { main: 'math', other: 'chinese'} }
console.log(a === b) // false
正常情况下,两个对象是不可能相等的,虽然 键 和 值 一样,因为他们有着不同的内存指向,实现
isE
qual
函数
var re.
[Vue warn]: Error in v-on handler: “TypeError: Cannot read properties of undefined (reading ‘$refs‘)
30766