我有这样的html:
<td><span ng-if="isuser(user) == false" type="button" >not allowed</span> </td>
仅当函数isuser(user)
返回false时,才会显示上述html。
我有一个像这样的数组:
$scope.list = ["456", "111", "459"];
现在,用户对象具有名为id
的数组。这个id
数组包含一个number
键,其值可以是456
,111
或459
,有时也可以是empty
。>
用户对象:
{"name":"pravin","status":"Live","id":[{"number":"111"}],"msg":"test"}
这是isuser
函数:
$scope.isuser = function(user) {
for (var i = 0; i < $scope.list.length; i++){
var exists = user.id.find(({number}) => number === $scope.list[i]);
}
if (exists)
return true;
else
return false;
};
但这总是返回false。
我希望for循环检查列表数组中是否不存在数字键的值,然后仅返回false。 我该怎么办?
答案 0 :(得分:2)
问题在于以下声明
var exists = user.id.find(({number}) => number === $scope.list[i]);
每次exists
变量都会更新,并且始终会得到最后的更改。
一种方法可能是通过传递 callback 函数作为参数来使用some
方法。
$scope.isuser = function(user) {
var exists = user.id.some(({number}) => $scope.list.includes(number));
return exists;
}
答案 1 :(得分:1)
尝试一下将为您提供帮助
$scope.isuser = function(user) {
var exists = false;
for (var i = 0; i < $scope.list.length; i++){
exists = user.id.find(({number}) => number === $scope.list[i]);
}
if(i==$scope.list.length-1){
if (exists)
return true;
else
return false;
}
loop };