AngularJS根据名称/值选择数组哈希元素
AngularJS select array hash element by name/value
我的一个select
标签有以下angular
数组
var names= [{name: 'Superman', val: '1'}, {name: 'Batman', val: '2'}];
$scope.names =names;
$scope.FormData = {};
$scope.FormData.name = $scope.names[1];
在上面的数组中,我如何像一样通过name
或val
来选择项目,而不是通过索引(1
)来选择项目
$scope.FormData.name = $scope.names['2']; #will select the {name: 'Batman', val: '2'}
我最初在这里发布了一个很长的问题,但后来我意识到这是我的问题
如果您正在使用angular
,为什么不使用$filter
中的内部版本?
https://docs.angularjs.org/api/ng/filter/filter
在您的情况下,如果您想在控制器中进行筛选,下面的代码将检索一个Array
,其中names
中的所有事件都与搜索"超人"匹配:
$filter('filter')($scope.names, {name:'Superman'})
如果你确信至少会有一场比赛,你可以这样做,以获得第一场比赛:
var matches = $filter('filter')($scope.names, {name:'Superman'});
var match = matches[0]:
请记住,如果没有匹配,则match
将是undefined
如果你想要一个可重复使用的函数,你可以这样做:
$scope.find = function(list, attributeName, attributeValue){
var returnVal = {};
angular.forEach(list,function(item){
if(item[attributeName]){
if(item[attributeName] === attributeValue){
returnVal = item;
}
}
});
return returnVal;
};
$scope.FormData.name = $scope.find(names,'name','Batman');
在上面的数组中,不是按索引(1)选择项目,而是如何我能按名称选择商品吗
您可以使用Lodash库的find
方法(http://lodash.com/docs#find):
var names= [{name: 'Superman', val: '1'}, {name: 'Batman', val: '2'}];
var matchingBatman = _.find(names, { name: 'Batman' });
matchingBatman
为:{name: 'Batman', val: '2'}
如果你想通过val
:找到,你也可以这样做
var matchingBatman = _.find(names, { val: '2' });
如果您想编写一个函数而不是使用库
function selectByProperty(key, val){
for(var i=0; i< $scope.names.length; i++){
if($scope.names[i][key] === val){
return $scope.names[i];
}
}
}
$scope.FormData.name = selectByProperty('val','2');
相关文章:
- 如何在javascript中使用click函数选择数组元素
- 如何根据下拉选择来选择数组的第一列
- 如何在加号运算符之后选择数组元素的一部分
- 如何选择数组中的第一个对象(当 array[0] 不起作用时)
- jQuery:如何获取选择数组中元素的索引
- 选择数组的随机元素来设置Youtube视频ID API
- 使用计数器更改选择数组名称
- AngularJs 帮助,在传递给隔离范围的对象中选择数组时遇到问题
- PHP 从“选择 - 数组”字段中填充文本框
- 在 jsrender 中选择数组的一部分
- JavaScript 如何使用 NOT 的索引与选择数组
- 如何随机选择数组
- 对象数组-选择数组子集,其中对象属性为值数组
- 未选择数组中的最后一项
- Jquery 选择数组中括号之间的文本
- (如何)除了math.random随机选择的一个元素外,我可以选择数组中的所有元素吗
- 从Javascript对象中选择数组
- 如何通过每次单击来选择数组的新索引
- 如何有效地随机选择数组项而不重复
- 如何只选择数组中的特定值