[英]angularjs: check for an id exists in an array r not
var vm = this; vm.usableDeposits = []; for (var i = 0; i < billableChargeCodes.length; i++) { var deposits = usableDeposits.filter(function(ud) { return ud.billinggroupuid == billableChargeCodes[i].billinggroupuid || ud.billinggroupuid == billableChargeCodes[i].billingsubgroupuid || ud.departmentuid == billableChargeCodes[i].departmentuid || !ud.entypeuid || ud.entypeuid == entypeuid }) for (var i = 0; i < deposits.length; i++) { var depositid = deposits[i]._id;
第一次, vm.usableDeposits[]
为空。 我必须检查deposits[i]._id
存在于vm.usableDeposits[]
。 如何使用deposits[i]._id
检查vm.usableDeposits[]
空数组_id? 如果id在vm.usableDeposits[]
不存在,那么我想将元素推入vm.usableDeposits[]
您只需在JavaScript中使用indexOf运算符即可检查数组中是否存在值。 如果值不在数组中,则返回-1
;否则,返回array
元素的索引。
语法如下:
if(myArray.indexOf(value) !== -1) {
// do this
} else {
// do that
}
希望这可以帮助。
您可以使用.some
deposits.some(o=> vm.usableDeposits.indexOf(o.id))
检查deposits
数组中的ID是否在vm.usableDeposits
。 .some
将返回true
,如果条件为真,否则为假
$scope.findIndexInData = function(data, property, value) {
var result = -1;
if((!!data) && (!!property) && (!!value)){
data.some(function (item, i) {
if (item[property] === value) {
result = i;
return true;
}
});
}
return result;
}
将数组作为第一个元素传递。 属性是您在该数组中查找的第二个元素和值。
例:
array = [{id:"1234",name:"abc"}, {id:"4567",name"xyz"}]
因此,您需要致电:
index = $scope.findIndexInData(array , 'id' , 4567)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.