@@ -686,21 +686,9 @@ angular.module('ui.grid')
686
686
* @param {string } name column name
687
687
*/
688
688
Grid . prototype . getColumn = function getColumn ( name ) {
689
- if ( this . columns && angular . isFunction ( this . columns . find ) ) {
690
- return this . columns . find ( function ( column ) {
691
- return column . colDef . name === name ;
692
- } ) || null ;
693
- }
694
-
695
- var result = null ;
696
- this . columns . every ( function ( column ) {
697
- if ( column . colDef . name === name ) {
698
- result = column ;
699
- return false ;
700
- }
701
- return true ;
689
+ return arrayFinder ( this . columns , function ( column ) {
690
+ return column . colDef . name === name ;
702
691
} ) ;
703
- return result ;
704
692
} ;
705
693
706
694
/**
@@ -711,21 +699,9 @@ angular.module('ui.grid')
711
699
* @param {string } name column.field
712
700
*/
713
701
Grid . prototype . getColDef = function getColDef ( name ) {
714
- if ( this . options . columnsDefs && angular . isFunction ( this . options . columnsDefs . find ) ) {
715
- return this . options . columnsDefs . find ( function ( colDef ) {
716
- return colDef . name === name ;
717
- } ) || null ;
718
- }
719
-
720
- var result = null ;
721
- this . options . columnsDefs . every ( function ( colDef ) {
722
- if ( colDef . name === name ) {
723
- result = colDef ;
724
- return false ;
725
- }
726
- return true ;
702
+ return arrayFinder ( this . options . columnDefs , function ( colDef ) {
703
+ return colDef . name === name ;
727
704
} ) ;
728
- return result ;
729
705
} ;
730
706
731
707
/**
@@ -1094,6 +1070,25 @@ angular.module('ui.grid')
1094
1070
return t ;
1095
1071
} ;
1096
1072
1073
+ var arrayFinder = function ( array , func ) {
1074
+ if ( array && array . length ) {
1075
+ var arr = [ ] ;
1076
+ if ( angular . isFunction ( array . find ) ) {
1077
+ return arr . push ( array . find ( func ) ) [ 0 ] || null ;
1078
+ }
1079
+
1080
+ array . every ( function ( entry ) {
1081
+ if ( func ( entry ) ) {
1082
+ arr . push ( entry ) ;
1083
+ return false ;
1084
+ }
1085
+ return true ;
1086
+ } ) ;
1087
+ return arr . length ? arr [ 0 ] : null ;
1088
+ }
1089
+ return null ;
1090
+ }
1091
+
1097
1092
/**
1098
1093
* @ngdoc function
1099
1094
* @name getRow
@@ -1106,21 +1101,9 @@ angular.module('ui.grid')
1106
1101
Grid . prototype . getRow = function getRow ( rowEntity , lookInRows ) {
1107
1102
var self = this ;
1108
1103
lookInRows = lookInRows == void 0 ? this . rows : lookInRows ;
1109
- if ( lookInRows && angular . isFunction ( lookInRows . find ) ) {
1110
- return lookInRows . find ( function ( row ) {
1111
- return self . options . rowEquality ( row . entity , rowEntity ) ;
1112
- } ) || null ;
1113
- }
1114
-
1115
- var result = null ;
1116
- lookInRows . every ( function ( row ) {
1117
- if ( self . options . rowEquality ( row . entity , rowEntity ) ) {
1118
- result = row ;
1119
- return false ;
1120
- }
1121
- return true ;
1104
+ return arrayFinder ( lookInRows , function ( row ) {
1105
+ return self . options . rowEquality ( row . entity , rowEntity ) ;
1122
1106
} ) ;
1123
- return result ;
1124
1107
} ;
1125
1108
1126
1109
0 commit comments