After reading many Stackoverflow questions, blogs, and documentation I still cannot figure out why this particular iteration over any array is not working.
I am using jQuery and javascript(obviously) to pull a GeoJSON file and then going over the properties of the resulting object to pull desired key/value pairs. As I find those pairs I want to insert then into another array object. The object is created as I expected however when I attempt to go over the newly created object nothing happens and if I try to find its length it returns a length of 0.
This is where I pull the records:
_recordsFromGeoJSON: function(inputText) {
    var retRecords = {},
    $.getJSON(this.GeoJSONUrl, function(data) {
        var geoJSONdata = data;
        $.each(geoJSONdata.features, function(fkey, fvalue) {
            $.each(fvalue.properties, function(pkey, pvalue) {
                var re = new RegExp(inputText, "i");
                var retest = re.test(pvalue);
                if (retest) {
                    retRecords[pvalue] = fvalue.geometry.coordinates;
                    return;
                }
            });
        });
    }); 
    return retRecords;
},
This is the code for the interation over the new object:
for(var key in this._retRecords) {
        //this function will never run
        var always = foo(bar);
    }
Some sample GeoJSON:
{
"type": "FeatureCollection",                                                                           
"features": [
{ "type": "Feature", "id": 0, "properties": { "NAME": "14 PARK PLACE PH 4", "AREAID":      3.0, "STR12M": 0.0, "CLS12M": 6.0, "STR4M": 0.0, "CLS4M": 0.0, "TOTAL": 164.0, "OCC": 112.0, "NFU": 0.0, "UNC": 3.0, "DVL": 49.0, "UDVL": 0.0 }, "geometry": { "type": "Point", "coordinates": [ -93.27512816536759, 37.044305883435001 ] } }
,
{ "type": "Feature", "id": 1, "properties": { "NAME": "ALPHA MEADOWS NORTH", "AREAID": 8.0, "STR12M": 0.0, "CLS12M": 0.0, "STR4M": 0.0, "CLS4M": 0.0, "TOTAL": 12.0, "OCC": 0.0, "NFU": 0.0, "UNC": 0.0, "DVL": 0.0, "UDVL": 0.0 }, "geometry": { "type": "Point", "coordinates": [ -92.839131163095786, 37.119205483765143 ] } }
]
}
When I console.log(this._retRecords); Chrome reports shows the object with all the properties I expected from the dataset:
Object
    14 PARK PLACE PH 4: Array[2]
        0: -93.27512816536759
        1: 37.044305883435
        length: 2
        __proto__: Array[0]
    ALPHA MEADOWS NORTH: Array[2]
        0: -92.839131163095786
        1: 37.119205483765143
        length: 2
        __proto__: Array[0]
Using both methods given on this question report 0 length.
I am quite certain I am missing something fundamental but I cannot find what it is. Any help, criticism, alternative methods would be great!
 
     
    