so I encountered weird problem here. I have an array status=new Array(). Then I iterate from 0 to N-1, and assign status[i]="idle"; I tried to do alert to check the values, and they are all assigned to a character coma ,. Anyone knows what’s wrong?
var status=new Array();
window.onload = function() {
for(var i=0;i<5;i++) {
status[i]="idle";
alert(status[i]);
}
}
Use a different variable name (or better yet, don’t use global variables at all). There’s a
window.statusproperty already, and apparently something isn’t letting you shadow it with your own (which surprises me slightly; I wonder if the array is being coerced to a string on assignment or something). At global scope,varcreates properties on thewindowobject, which is whywindow.statusis relevant.This example (source) replicates your problem (for me, using Chrome), and this example (source) with just a changed name shows the correct series of alerts.
Note that this is browser-specific. On Firefox, even your old code shows me the correct series of alerts. E.g., Firefox is allowing us to redefine
window.status, but Chrome isn’t.