Javascript函数返回False,但应返回True
我正在检查一个条件,并根据该条件返回true和false。问题是我的条件甚至满足了。下面是我的代码Javascript函数返回False,但应返回True,javascript,Javascript,我正在检查一个条件,并根据该条件返回true和false。问题是我的条件甚至满足了。下面是我的代码 $scope.getPostalcode = function(obj) { for ( var x in obj) { if (typeof obj[x] === 'object') { $scope.getPostalcode(obj[x]); } else if (x === 'postalCode') {
$scope.getPostalcode = function(obj) {
for ( var x in obj) {
if (typeof obj[x] === 'object') {
$scope.getPostalcode(obj[x]);
} else if (x === 'postalCode') {
if (obj.postalCode == $scope.postalCode) {
return true;
break;
}
}
}
return false;
}
obj.postalCode
和$scope.postalCode
的值相同。我还检查了两者的类型都是string。我还包括我的对象,以防我在那里犯错误
[
{
"account": "10066",
"pcn": "K770",
"msn": "6631",
"meterName": "DM",
"address": {
"companyName": "Test",
"street": "10 Downing Street",
"city": "LONDON",
"country": "UK",
"postalCode": "SW1A 2AA"
}
},
{
"account": "63350",
"pcn": "K7",
"msn": "663",
"meterName": "DM5",
"address": {
"companyName": "DITIQUE",
"street": "10 Downing Street",
"city": "LONDON",
"country": "UK",
"postalCode": "SW1A 2AA"
}
}
]
为了更好地理解正在发生的事情,您可以使用调试器或尝试在函数的每个步骤中记录您的值。在
if(typeof obj[x]==“object')中,您没有使用return
,所以你递归地调用同一个函数,但是你没有退出第一个调用。不确定你想要实现什么,但是我认为你想要改变$scope.getPostalcode(obj[x])代码>进入返回$scope.getPostalcode(obj[x])代码>在if语句中。这是否回答了您的问题@马克·拜恩斯帮了忙。谢谢