treating arrays different than objects in grep iterator
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 19 Sep 2006 16:35:24 +0000 (16:35 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 19 Sep 2006 16:35:24 +0000 (16:35 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@6141 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/opac/common/js/utils.js

index 6f8fb3b..cc4ab18 100644 (file)
@@ -271,9 +271,17 @@ function findTreeItemById( tree, id ) {
 matching array items otherwise */
 function grep( arr, func ) {
        var results = [];
-       for( var i in arr ) {
-               if( func(arr[i]) ) 
-                       results.push(arr[i]);
+       if(!arr) return null;
+       if( arr.constructor == Array ) {
+               for( var i = 0; i < arr.length; i++ ) {
+                       if( func(arr[i]) ) 
+                               results.push(arr[i]);
+               }
+       } else {
+               for( var i in arr ) {
+                       if( func(arr[i]) ) 
+                               results.push(arr[i]);
+               }
        }
        if(results.length > 0) return results;
        return null;