This is a strange occurrence to be sure. First off, I'm using Chrome version 23.x and have not tried to reproduce this in other browsers yet.
I receive a JSON array from the server of the form:
JSON
{
"layout":0,
"caption":"Work History",
"cols":[
{"field":"company","label":"Company Name","hidden":false,"order":-1,"validationType":2,"list":[]}, {"field":"date_start","label":"From","hidden":false,"order":-1,"validationType":1,"list":[]},
{"field":"date_end","label":"Until","hidden":false,"order":-1,"validationType":0,"list":[]},
{"field":"position","label":"Title","hidden":false,"order":-1,"validationType":2,"list":[]},
{"field":"description","label":"Description","hidden":false,"order":-1,"validationType":0,"list":[]},
{"field":"project","label":"Project","hidden":false,"order":-1,"validationType":64,"list":[]}
]
}
Then, I attempt to loop over the cols objects with Javascript"
Javascript
for (var c in json.cols) {
console.log("col name: " + c);
}
Google Chrome's console prints the following:
Output
col name: 0
col name: 1
col name: 2
col name: 3
col name: 4
col name: 5
col name: remove
There should only be 6 outputs, first of all. Second, where does this final "remove" key come from? Why is it listed?