如何从具有 id 的数组中获取多个对象
How to get multiple objects from an array with an id?
我坚持Javascript基础知识。在角度中工作。
我有一个带有对象的数组:
$scope.persons = [
{
id: 1,
name:'jack'
},
{
id: 2,
name:'John'
},
{
id: 3,
name:'eric'
},
{
id: 2,
name:'John'
}
]
我想获取与用户 ID 具有相同 id 的所有对象。因此,如果对象 ID 与用户 ID 匹配,请遍历对象,请选择它。
$scope.getResult = function(userId){
$scope.userId = userId;
for(var i=0;i < $scope.persons.length; i++){
if($scope.persons[i].id === $scope.userId){
$scope.result = $scope.persons[i];
}
}
$scope.userLogs = $scope.result;
};
我在这里只得到最后一个与userId具有相同id的对象。
如何列出与 userId 具有相同 id 的所有对象?
Live:http://jsfiddle.net/sb0fh60j/
提前感谢!
您可以使用过滤器
$scope.getUsers = function(x){
$scope.userId = x;
$scope.userLogs = $scope.persons.filter(function (person) {
return person.id === x;
})
};
例
或者,在您的情况下,您需要在循环之前将result
声明为数组,并向其添加匹配项,如下所示
$scope.getUsers = function(x){
$scope.userId = x;
$scope.result = [];
for(var i=0;i < $scope.persons.length; i++){
if($scope.persons[i].id === $scope.userId){
$scope.result.push($scope.persons[i]);
}
}
$scope.userLogs = $scope.result;
};
例
您不断覆盖结果,因为它不是数组。 试试这个:
$scope.result[] = $scope.persons[i];
而不是
分配,你需要将该对象推送到数组
$scope.result.push($scope.persons[i]);
$scope.result 不是一个数组。
你必须声明一个var result = [];
然后你才能做result.push($scope.persons[i]);
我不明白你为什么要使用$scope.result
,恕我直言,为此目的实例化$scope及其观察者的属性是没有用
编辑:无用也分配X给$scope; 添加了阿尔斯·
斯菲德尔
相关文章:
- Backbone虹吸以获取对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 使用fabric.js从矩形区域获取对象,并将该区域绘制到画布上
- Undercore.js获取对象数组中键对象的值
- 从数组中获取对象
- 在Sahi中获取[对象]作为按钮值
- 如何从jquery自动完成中获取对象值
- 从数组NodeJs中获取对象值
- 如何在javascript中在运行时获取对象/数组
- 从Javascript中谓词的数组中获取对象
- 如何获取对象名称
- 打字.如何获取对象'的属性名称与其值不同
- 扩展引导程序的typeahead以便获取对象而不是字符串
- 正在获取对象内部数组中的对象总数
- JavaScript:获取对象的评估属性
- minko从dom获取对象
- 如何获取对象
- 从类内部获取对象名称(JavaScript)
- 如何获取对象名称
- 获取对象的所有可能组合,其中值的总和与数字匹配