Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript数组长度提供了不正确的值_Javascript_Php_Google Maps_Google Maps Api 3 - Fatal编程技术网

javascript数组长度提供了不正确的值

javascript数组长度提供了不正确的值,javascript,php,google-maps,google-maps-api-3,Javascript,Php,Google Maps,Google Maps Api 3,我正在尝试使用我数据库中的postalcodes在google地图中放置标记。 我将php arry提取到javascript数组中,如下所示: var js_array = [<?php echo '"'.implode('","', $postal).'"' ?>]; var postal = new Array(); var postcodes = new Array(); for (var i=0;i<js_array.length;i++){

我正在尝试使用我数据库中的postalcodes在google地图中放置标记。 我将php arry提取到javascript数组中,如下所示:

 var js_array = [<?php echo '"'.implode('","', $postal).'"' ?>];
   var postal = new Array();
   var postcodes = new Array();
   for (var i=0;i<js_array.length;i++){
       postal[i] = "\"" + js_array[i] + "\"";
   }
   var postcodes = "[" + postal + "]";
   alert(postcodes.length);
var js_数组=[];
var postal=新数组();
var postcodes=新数组();
对于(var i=0;i用于构造数组:

var js_array = <?php echo json_encode($postal) ?>;
您已经将
postal
定义为数组了。为什么要在其周围加上方括号?我想您可以删除该行

事实上,整个循环看起来都是多余的。为什么要在值周围加双引号呢?去掉所有这些。只需执行以下操作:

var postcodes = <?php echo json_encode($postal) ?>;
alert(postcodes.length);
var邮政编码=;
警报(邮政编码、长度);
执行此操作时:

var postcodes = "[" + postal + "]";

您正在创建一个字符串。您看到的长度是该字符串的长度,而不是数组的长度。

我不认为您得到的是数组的长度,但实际上是一个字符串

var postcodes=“[”+postal+“]”;

重新键入“var”将重置最初设置的变量。请尝试删除该变量

   var js_array = [<?php echo '"'.implode('","', $postal).'"' ?>];
   var postal = new Array();
   var postcodes = new Array();
   for (var i=0;i<js_array.length;i++){
       postal[i] = "\"" + js_array[i] + "\"";
   }
   postcodes = "[" + postal + "]";
   alert(postcodes.length);
var js_数组=[];
var postal=新数组();
var postcodes=新数组();

对于(var i=0;我认为您试图做的事情比实际需要的要多。我得到了[“L6Y2N4”,“L6Y2N5”]在提醒邮政编码时。@user3067928好的,问题是?我现在觉得这是一个合适的数组。我已经删除了那个方括号。我在提醒中得到了计数:2。但是,map没有将这些属性放在map中。@user3067928看到我更新的答案的最后一部分。你可以真正简化它,现在就有了一个有效的javascript数组。@user3067928我不太确定您想要做什么,但我认为您真正需要的是使用PHP的JSON编码,因为这将产生现成的JavaScript数组初始化语法。除此之外,您不需要做任何事情。
var postcodes = "[" + postal + "]";
   var js_array = [<?php echo '"'.implode('","', $postal).'"' ?>];
   var postal = new Array();
   var postcodes = new Array();
   for (var i=0;i<js_array.length;i++){
       postal[i] = "\"" + js_array[i] + "\"";
   }
   postcodes = "[" + postal + "]";
   alert(postcodes.length);