【发布时间】:2016-06-21 15:53:28
【问题描述】:
我很难做到这一点。如果有人可以帮助我找到解决方案,我会很高兴。
0: Object
Name: Ria
Age: 27
Sex: Female
1: Object
Name: Brian
Age: 23
Sex: Male
2: Object
Name: Rick
Age: 32
Sex: Male
这里是对象数组。我正在传递用户输入的值。例如我要求用户输入名称。输入后,如果名称存在于对象数组中,我需要检查上述对象数组。
我使用 foreach 和基本数组迭代尝试了各种解决方案,但我找不到方法。
这是我最后尝试的...
var result = false;
function search(nameKey, myArray) {
for (var i = 0; i < myArray.length; i++) {
if (myArray[i].Name === nameKey) {
return true;
}
}
}
result = search($scope.data.name, checkdatabase);
这里,checkdatabase 是对象数组,$scope.data.name 是用户输入的值。当用户存在于数据库中时,我期望结果的值为true,否则结果为最初定义的false。
【问题讨论】:
-
您正在检查
myArray[i].User_ID,但您的对象没有User_ID属性。您可能想查看myArray[i].Name。 -
对不起。更正了 tat 属性。
-
只需在函数末尾添加
return false; -
@AlonEitan 为什么?默认情况下,它会返回
undefined这是虚假的。 -
@MikeC 哦,在那种情况下,我只是不明白这个问题。
result = false超出了函数的范围,这就是我感到困惑的原因。谢谢
标签: javascript arrays angularjs object iteration