JAVASCRIPT-->;为什么我会收到错误消息;未捕获的类型错误:数字不是函数";?
我想知道为什么我会收到错误消息(UncaughtTypeError:number不是函数),这是我的代码:JAVASCRIPT-->;为什么我会收到错误消息;未捕获的类型错误:数字不是函数";?,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我想知道为什么我会收到错误消息(UncaughtTypeError:number不是函数),这是我的代码: <script type = "text/javascript"> function dataparse(points) { points = points.substr(0, points.length - 1); var linar = points.split("\n"); // Break each point by lin
<script type = "text/javascript">
function dataparse(points)
{
points = points.substr(0, points.length - 1);
var linar = points.split("\n");
// Break each point by line break
var wrkar = [];
var pntar = [];
for (var i = 0; i < linar.length; i++)
{
wrkar = linar[i].split(",", 2);
// Break each point into x and y
pntar.push(new google.maps.LatLng(parseFloat(wrkar[0]), parseFloat(wrkar[1])));
}
return pntar;
}
var cd = [
(30.40545181622765, -9.582610613708539)
(30.405229737948233, -9.577975756530805)
(30.40300892737293, -9.577546603088422)
(30.402268645956614, -9.584241396789594)
];
var df = dataparse(cd);
alert('df');
函数数据解析(点)
{
点=点.substr(0,点.length-1);
var linar=点。拆分(“\n”);
//按换行符打断每个点
var wrkar=[];
var pntar=[];
对于(变量i=0;i
由于cd
变量而引发错误。你使用括号,但是它不正确。
遵循dataparse
方法cd
变量应该如下所示:
var cd = "30.40545181622765, -9.582610613708539\n"+
"30.405229737948233, -9.577975756530805\n"+
"30.40300892737293, -9.577546603088422\n"+
"30.402268645956614, -9.584241396789594";
更新:但是,您可以用更漂亮的格式重写代码:
function dataparse(points) {
var pntar = [];
for (var i = 0; i < points.length; i++) {
pntar.push(new google.maps.LatLng(points[i][0], points[i][1]));
}
return pntar;
}
var cd = [
[30.40545181622765, -9.582610613708539],
[30.405229737948233, -9.577975756530805],
[30.40300892737293, -9.577546603088422],
[30.402268645956614, -9.584241396789594]
];
var df = dataparse(cd);
alert(df);
函数数据解析(点){
var pntar=[];
对于(变量i=0;i
由于cd
变量而引发错误。你使用括号,但是它不正确。
遵循dataparse
方法cd
变量应该如下所示:
var cd = "30.40545181622765, -9.582610613708539\n"+
"30.405229737948233, -9.577975756530805\n"+
"30.40300892737293, -9.577546603088422\n"+
"30.402268645956614, -9.584241396789594";
更新:但是,您可以用更漂亮的格式重写代码:
function dataparse(points) {
var pntar = [];
for (var i = 0; i < points.length; i++) {
pntar.push(new google.maps.LatLng(points[i][0], points[i][1]));
}
return pntar;
}
var cd = [
[30.40545181622765, -9.582610613708539],
[30.405229737948233, -9.577975756530805],
[30.40300892737293, -9.577546603088422],
[30.402268645956614, -9.584241396789594]
];
var df = dataparse(cd);
alert(df);
函数数据解析(点){
var pntar=[];
对于(变量i=0;i
(30.40545181622765,-9.582610613708539)
计算结果为-9.582610613708539
与下一行一起,它被解释为
-9.5779756530805(30.405229737948233,-9.5779756530805)
这当然会失败,因为-9.577…
不是一个函数。(30.40545181622765,-9.582610613708539)
计算结果为-9.582610613708539
与下一行一起,它被解释为
-9.5779756530805(30.405229737948233,-9.5779756530805)
这当然会失败,因为-9.577…
不是一个函数
points.substr(0,points.length-1),您的dataparse
函数需要一个字符串
(num1,num2)(num3,num4)
作为函数执行(有关原因,请参阅GGG的答案)points.substr(0,points.length-1),您的dataparse
函数需要一个字符串
(num1,num2)(num3,num4)
作为函数执行(有关原因,请参阅GGG的答案)您的点数组无效。您必须为点本身使用方括号,并用逗号将其拆分
var cd = [
[30.40545181622765, -9.582610613708539],
[30.405229737948233, -9.577975756530805],
[30.40300892737293, -9.577546603088422],
[30.402268645956614, -9.584241396789594]
];
这样,您还必须修改(简化)您的dataparse
函数以正确处理数组
function dataparse(points) {
var i,
length,
pntar = [];
for (i = 0, length = points.length; i < length; i++) {
pntar.push(new google.maps.LatLng(points[i][0], points[i][1]));
}
return pntar;
}
函数数据解析(点){
var i,
长度,
pntar=[];
对于(i=0,长度=points.length;i
您的点数组无效。您必须为点本身使用方括号,并用逗号将其拆分
var cd = [
[30.40545181622765, -9.582610613708539],
[30.405229737948233, -9.577975756530805],
[30.40300892737293, -9.577546603088422],
[30.402268645956614, -9.584241396789594]
];
这样,您还必须修改(简化)您的dataparse
函数以正确处理数组
function dataparse(points) {
var i,
length,
pntar = [];
for (i = 0, length = points.length; i < length; i++) {
pntar.push(new google.maps.LatLng(points[i][0], points[i][1]));
}
return pntar;
}
函数数据解析(点){
var i,
长度,
pntar=[];
对于(i=0,长度=points.length;i
您得到了这个结果,因为括号中的每个数字都经过计算,所以您应该用函数接受的正确参数替换它。。。由于您使用的是substr
,但实际上您希望传递一个数组,因此还应向函数中添加一些代码:
function dataparse(pairs)
{
for ( i=0; i < pairs.length ; i++ ) {
var wrkar = pairs[i].split(", ",2);
var pntar = [] ;
pntar.push( new google.maps.LatLng(parseFloat(wrkar[0]), parseFloat(wrkar[1])) );
return pntar;
}
}
var cd = [
"30.40545181622765, -9.582610613708539",
"30.405229737948233, -9.577975756530805",
"30.40300892737293, -9.577546603088422",
"30.402268645956614, -9.584241396789594"
];
var df = dataparse(cd);
alert('df');
函数数据解析(成对)
{
对于(i=0;i
这是一个JSFIDLE,因为括号中的每个数字都经过计算,所以应该用函数接受的正确参数替换它。。。由于您使用的是
substr
,但实际上您希望传递一个数组,因此还应向函数中添加一些代码:
function dataparse(pairs)
{
for ( i=0; i < pairs.length ; i++ ) {
var wrkar = pairs[i].split(", ",2);
var pntar = [] ;
pntar.push( new google.maps.LatLng(parseFloat(wrkar[0]), parseFloat(wrkar[1])) );
return pntar;
}
}
var cd = [
"30.40545181622765, -9.582610613708539",
"30.405229737948233, -9.577975756530805",
"30.40300892737293, -9.577546603088422",
"30.402268645956614, -9.584241396789594"
];
var df = dataparse(cd);
alert('df');
函数数据解析(成对)
{
对于(i=0;i