<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
const deepEquals = (x, y) => {
const f1 = x instanceof Object
const f2 = y instanceof Object
if (!f1 || !f2) {
return x === y
}
if (Object.keys(x).length !== Object.keys(y).length) {
return false
}
const newX = Object.keys(x)
for (let p = 0; p < newX.length; p++) {
const p2 = newX[p]
const a = x[p2] instanceof Object
const b = y[p2] instanceof Object
if (a && b) {
if(!deepEquals(x[p2], y[p2])){
return false
}
} else if (x[p2] !== y[p2]) {
return false
}
}
return true
}
const arr1 = [
{
"a": 1,
"b": "12",
"c": "123",
"d": "444",
"e": 1245,
"f": "2019-11-11 13:38:05",
"g": 123456,
"h": "2019-11-11 13:38:18",
"i": [
{
"a": 713,
"b": "1221323",
"c": "1233213.pdf",
"d": "444",
"e": 123213213,
"f": "2019-11-11 13:38:05",
"g": 31213,
"h": "2019-11-11 13:38:18",
"i": "132313"
}
],
"a":2
}
]
const arr2 = [
{
"a": 1,
"b": "12",
"c": "123",
"d": "444",
"e": 1245,
"f": "2019-11-11 13:38:05",
"g": 123456,
"h": "2019-11-11 13:38:18",
"i": [
{
"a": 713,
"b": "1221323",
"c": "1233213.pdf",
"d": "444",
"e": 123213213,
"f": "2019-11-11 13:38:05",
"g": 31213,
"h": "2019-11-11 13:38:18",
"i": "132313"
}
],
"a":2
}
]
alert(deepEquals(arr1,arr2))
</script>
</body>
</html>
javascript的对象内容对比 初级阶段
最新推荐文章于 2023-05-20 16:21:52 发布