gpt4 book ai didi

javascript - "Uncaught SyntaxError: Unexpected token var"尝试编写一小段代码来比较 JavaScript 中 2 个对象的属性

转载 作者:行者123 更新时间:2023-11-30 17:20:20 25 4
gpt4 key购买 nike

我编写了以下代码来比较 2 个对象的属性 - object1 和 object2。

var object1 = {1:"abc",2:"def"};
var object2 = {1:"abc",2:"def"};
for (var prop in object1) {
if (!(var prop in object2)) {
console.log("fail");
}
}

但是,我收到错误“Uncaught SyntaxError: Unexpected token var”。

我试图模拟以下代码的一部分,这些代码是为比较不同的对象而编写的,如果它们具有相同的内容则返回 true。

function deepEqual(a, b) {
if (a === b) return true;

if (a == null || typeof a != "object" ||
b == null || typeof b != "object")
return false;

var propsInA = 0, propsInB = 0;

for (var prop in a)
propsInA += 1;

for (var prop in b) {
propsInB += 1;
if (!(prop in a) || !deepEqual(a[prop], b[prop]))
return false;
}

return propsInA == propsInB;
}

var obj = {here: {is: "an"}, object: 2};
console.log(deepEqual(obj, obj));
// → true
console.log(deepEqual(obj, {here: 1, object: 2}));
// → false
console.log(deepEqual(obj, {here: {is: "an"}, object: 2}));
// → true

具体来说,我试图模拟的部分是下面的代码部分,它比较了 2 个对象的属性。

for (var prop in b) {
propsInB += 1;
if (!(prop in a) || !deepEqual(a[prop], b[prop]))
return false;
}

有人可以帮忙解释一下为什么我写的代码不能运行而原始代码可以运行吗?

如果我对原始代码的理解是错误的,我应该如何编写代码来比较 2 个对象的属性(模拟我从中获得灵感的原始代码)?

感谢您的帮助和建议!

最佳答案

您不能在 if 中声明 var:

if (!(var prop in object2)) {  // error
console.log("fail");
}

或者,这会询问属性 prop 是否不存在于 object2 中,这可能是什么意思:

if (!(prop in object2)) {
console.log("fail");
}

关于javascript - "Uncaught SyntaxError: Unexpected token var"尝试编写一小段代码来比较 JavaScript 中 2 个对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25248315/

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