我正在使用AngularJS。我有一个json对象,如下所示;
info = [
{
"name": "Tom",
"id": "111"
},
{
"name": "Sam",
"id": "222"
},
{
"name": "James",
"id": "333"
}
]
我希望有一个函数,当找到一个匹配的名字时,会采取一些动作(在这个例子中,返回相应的id。)换句话说,如果输入匹配的名字是'Tom',我想要根据上面的json对象返回id'111。
我写了一些代码来找到匹配的名字。
$scope.getIdFromName = function()
{
angular.forEach(info, function(value, key)
{
//$scope.searchByName contains the name to be matched
if (key === 'name' && value === $scope.searchByName)
{
//$scope.searchById is the id to be returned
$scope.searchById = key;
alert("found");
}
});
};
代码哪里出错了?或者它是如此错误,以至于完全重写是更好的?任何建议(不需要是angularjs)将是最受欢迎的。非常感谢你。
答案 0 :(得分:3)
由于info是一个对象数组,因此键将成为每个项的索引,value将是该索引处的整个对象。你的forEach应该是这样的:
angular.forEach(info, function(value, key)
{
//$scope.searchByName contains the name to be matched
if (value.name === $scope.searchByName)
{
//$scope.searchById is the id to be returned
$scope.searchById = value.id;
alert("found");
}
});