gpt4 book ai didi

javascript - 递归 isEqual 函数导致 Chrome 卡住

转载 作者:行者123 更新时间:2023-12-03 12:21:00 25 4
gpt4 key购买 nike

我有 2 个大对象要比较。我想知道它们是否相等。
JSON.stringify(obj1) == JSON.stringify(obj2) 不起作用,因为对象是动态创建的,所以属性的顺序是随机的。

所以我写了一个isEqual()如下。

function isEqual(ar1, ar2) {
if(ar1 !== ar2) {
if(typeof ar1 !== typeof ar2) {
return false;
}
if(ar1 == null) {
if(ar2 == null) {
return true;
}
return false;
}
if(ar2 == null) {
if(ar1 == null) {
return true;
}
return false;
}
if(typeof ar1 !== 'object') {
return false;
}
if (ar1.length !== ar2.length) {
return false;
}
for(var i in ar1) {
if(!isEqual(ar1[i], ar2[i])) {
return false;
}
}
for(var i in ar2) {
if(!isEqual(ar1[i], ar2[i])) {
return false;
}
}
}
return true;
}

现在,如果我运行 isEqual(obj1, obj2),chrome 中的选项卡会卡住,我无法关闭该选项卡。我必须等到 chrome 要求我在大约 10 分钟后关闭无响应的选项卡。如何解决?

最佳答案

使用 Lodash 的 isEqual 为您完成此操作。

https://lodash.com/docs/4.17.4#isEqual

关于javascript - 递归 isEqual 函数导致 Chrome 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45919725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com