Javascript array.join()返回一个空字符串

Javascript array.join()返回一个空字符串,javascript,javascript-objects,Javascript,Javascript Objects,我觉得我错过了一些简单的东西。以我的代码为例: var names = []; var urlname = []; names = JSON.parse(localStorage.getItem('saved-names')); names.forEach(function(key) { jQuery.getJSON( "https://webpro.com/api/v5/info.php?name="+key, funct

我觉得我错过了一些简单的东西。以我的代码为例:

  var names = [];
  var urlname = [];
  names = JSON.parse(localStorage.getItem('saved-names'));

     names.forEach(function(key) {
        jQuery.getJSON(
        "https://webpro.com/api/v5/info.php?name="+key,
        function(data) { 
            jQuery.each(data, function (i, val) {         
                urlname.push("||1 " + encodeURIComponent(val.name));      
            });               
        });                  
    }); //End forEach name Loop

    console.log(urlname); //This outputs the array with all the names
    console.log("String: " + urlname.join("")); //This is empty

我不明白为什么最后可以在控制台中输出数组,但是
.join()
为我返回了一个空字符串?

第一个副本是为什么在加入数组时数组是空的,第二个副本是为什么在修改数组后控制台会更新以显示数据。第一个副本是为什么在加入数组时数组是空的,第二个重复就是为什么控制台会在修改阵列后更新以显示数据。