JAVASCRIPT --> 为什么我会收到错误消息“未捕获的类型错误:数字不是一个函数”
JAVASCRIPT --> Why do I get the error message "Uncaught TypeError: number is not a function "?
我想知道为什么我会收到错误消息(未捕获的类型错误:数字不是一个函数),这是我的代码:
<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');
(30.40545181622765, -9.582610613708539)
计算结果为 -9.582610613708539
与下一行一起,它被解释为
-9.577975756530805(30.405229737948233, -9.577975756530805)
这当然会失败,因为-9.577...
不是一个函数。
- 您的
dataparse
函数需要一个字符串,给定points.substr(0,points.length - 1)
- 您将 cd 初始化为数组,但解析器尝试将
(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;
}
你得到了这个,因为你括号中的每个数字都被计算了,你应该用你的函数接受的正确参数替换它......由于您使用的是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');
这是一个JSFIDDLE http://jsfiddle.net/ptQfc/
1st misake:
var cd = [
(30.40545181622765, -9.582610613708539)
(30.405229737948233, -9.577975756530805)
(30.40300892737293, -9.577546603088422)
(30.402268645956614, -9.584241396789594)
];
Javascript 数组必须用逗号分隔,而不是用换行符分隔!
由于变量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);
你误解了所需的语法,它导致了一大堆错误,即试图将变量解释为函数。
在 Javascript 中,var=[val,val2]
构造创建一个数组。您尝试将括号的内容视为字符串,并将其拆分为字符串。
存储数组的更好方法是:
var cd = [
[30.40545181622765, -9.582610613708539],
[30.405229737948233, -9.577975756530805],
[30.40300892737293, -9.577546603088422],
[30.402268645956614, -9.584241396789594]
];
然后,可以将函数编写为:
function dataparse(linar) {
var wrkar = [] ;
var pntar = [] ;
for (var i = 0; i < linar.length; i++) {
wrkar = linar[i]; // Break each point into x and y
pntar.push( new google.maps.LatLng(parseFloat(wrkar[0]),parseFloat(wrkar[1])));
}
return pntar ;
}
由于linar
是一个数组数组,每次循环访问数组时,它都会将下一个数组设置为wrkar
的值,这为您提供x
和y
坐标。
- For 循环从错误的数字开始
- 这个javascript代码有什么错误,它有将数字转换为单词的功能
- jQuery - 带有一些数字的表格计算出现奇怪的舍入错误
- 类型错误:数字不是一个函数
- 谷歌地图API多段线创建失败;未捕获类型错误:数字不是函数;
- 什么'这个代码只允许数字和句点,这是错误的
- JQuery数字滑块错误
- 如何访问以数字开头的对象属性(语法错误:意外的标识符)
- Javascript getDay方法返回错误的数字
- setTimeout 导致未捕获的类型错误:数字不是一个函数
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- NaN错误和数字保持不变
- Javascript生成错误数字的问题
- 意外的语法错误:意外的数字
- PHP 中的 ASCII 数字到字符错误
- 错误: [ngModel:numfmt] 预期“1”是一个数字角度
- 未捕获的类型错误:数字不是一个函数
- JavaScript年龄计算器不断给出错误的数字
- JAVASCRIPT --> 为什么我会收到错误消息“未捕获的类型错误:数字不是一个函数”
- 类型错误:数字不是一个函数 - 当尝试使用谷歌地图API V3 DirectionsService时