一、前言
microdiff 是一款对比两个对象(object or array)属性的库,相比较其它同类型的库,有以下特点:
包体积小于 1 kb
执行效率高
零依赖
支持 TypeScript
基本的使用方式如下:
import diff from "microdiff";
const obj1 = {
originalProperty: true,
};
const obj2 = {
originalProperty: true,
newProperty: "new",
};
console.log(diff(obj1, obj2));
// [{type: "CREATE", path: ["newProperty"], value: "new"}]
二、遍历对象属性
既然要对比两个对象的属性,那么必然需要先遍历对象的属性,JavaScript 提供了应用于各种场景的遍历方法:
for...in
Object.keys()
Object.getOwnPropertyNames()
Object.getOwnPropertySymbols()
Reflect.ownKeys()
要想完全掌握上述方法,可以从对象属性的两个维度着手,第一个维度就是属性类型: