如何正确拆分字符串数组是另一个问题吗?

How do I correctly split an array of strings of is it another issue?

我正在尝试按照其他示例 here on SO. I am using Raphael.js and regions[j] below returns an array of Raphael objects - hence the .data(id). This seems to be ok, but theCountyNames, as outlined in the comment below returns all of the strings as one long string. I am guessing that this is why randCounty returns a single random letter, but when I try appending a comma in the loop (+",") and using split as per this question 访问字符串数组中的随机元素,但我仍然得到一个随机的单个字母。也许我没有正确执行此操作,或者这是另一个问题?谢谢

 function pickRandCounty(){
var theCountyNames = new Array();
for (var j = 0; j < regions.length; j++) {
theCountyNames = regions[j].data('id');
document.write(theCountyNames);//THIS GIVES ME THE COMPLETE LIST OF ITEMS IN THE ARRAY BUT ALL AS ONE STRING
//document.write("<hr>");
 }
//var randCounty = theCountyNames[Math.floor(Math.random() * theCountyNames.length)];
//document.write(randCounty);//THIS JUST RETURNS ONE RANDOM LETTER??
}

使用 Array.prototype.push 将新项目追加到 数组

function pickRandCounty(){
    var theCountyNames = [],
        j;
    for (j = 0; j < regions.length; ++j) {
        theCountyNames.push(regions[j].data('id'));
    }
    j = Math.floor(Math.random() * regions.length);
    return theCountyNames[j];
}

然而,这并没有优化,因为你可以预先设置Array的长度,你甚至可以完全跳过循环,

function pickRandCounty(){
    var j = Math.floor(Math.random() * regions.length);
    return regions[j].data('id');
}

错误似乎在这部分行。

theCountyNames = regions[j].data('id'); //wrong
theCountyNames.push(regions[j].data('id')); //right

第二个错误

document.write(theCountyNames); //it will keep on appending the string in the DOM
document.write("<br>" + theCountyNames);//right