Javascript 插入语(第88行)中的JS缺失)

Javascript 插入语(第88行)中的JS缺失),javascript,syntax-error,geogebra,Javascript,Syntax Error,Geogebra,我正在用JS编写一个程序,用于检查GeoGebra中的等角度。 这是我的第一个JS代码,我以前使用c#进行游戏编程。 代码是: var names = ggbApplet.getAllObjectNames(); var lines = new Set(); var angles = new Set(); var groups = new Set(); for(var i=0; i<names.length; i++) { if(getObjectType(names[i].e)==="l

我正在用JS编写一个程序,用于检查GeoGebra中的等角度。 这是我的第一个JS代码,我以前使用c#进行游戏编程。 代码是:

var names = ggbApplet.getAllObjectNames();
var lines = new Set();
var angles = new Set();
var groups = new Set();
for(var i=0; i<names.length; i++)
{
if(getObjectType(names[i].e)==="line")
{
lines.add(names[i]);
}
}

for(var i=0;i<lines.size;i++)
{
for(var j=0;j<i;j++)
{

var angle = new Angle(i,j);
angles.add(angle);

}
}

for(var i=0;i<angles.size;i++)
{
    var thisVal = angles.get(i).value;
    var placed = false;
    for(var j=0;j<groups.size;j++)
    {
        if(groups.get(j).get(0).value===thisVal)
        {
        groups.get(j).add(angles.get(i));
        placed = true;
        }
    }
    if(!placed)
    {
    var newGroup = new Set();
    newGroup.add(angles.get(i));
    groups.add(newGroup);
    }
}

for(var i=0;i<groups.size;i++)
{
var list="";
for(var j=0;j<groups.get(i).size;j++)
{
list = list+groups.get(i).get(j).name;
if(j != groups.get(i).size-1)
{
list = list+",";
}
}
var comm1 = "Checkbox[angle_{"+groups.get(i).get(0).value+"},{"+list+"}]";
ggbApplet.evalCommand(comm1);
var comm2 = "SetValue[angle_{"+groups.get(i).get(0).value+"}+,0]";
ggbApplet.evalCommand(comm2);

}



(function Angle (i, j)
{
this.lineA = lines.get(i);
this.lineB = lines.get(j);

this.name = "angleA_"+i+"B_"+j;
var comm3 = "angleA_"+i+"B_"+j+" = Angle["+this.lineA+","+this.lineB+"]";
ggbApplet.evalCommand(comm3);
var val = ggbApplet.getValue(this.name);
if(val>180)
{val = val-180}
this.value = val;
ggbApplet.setVisible(name,false)
});

function Set {
var elm;
this.elements=elm;
this.size=0;
}

Set.prototype.get = new function(index)
{
return this.elements[index];
}

Set.prototype.add = new function(object)
{
this.elements[this.size]=object;
this.size = this.size+1;
}
var name=ggbApplet.getAllObjectNames();
变量行=新集合();
变量角度=新集合();
变量组=新集合();

对于(var i=0;i,函数定义缺少函数名称后的参数列表

另外,您正在将
elements
属性初始化为未定义的值。您需要将其初始化为空数组,以便
add
方法可以设置其元素

function Set() {
    this.elements=[];
    this.size=0;
}

函数定义缺少函数名称后的参数列表

另外,您正在将
elements
属性初始化为未定义的值。您需要将其初始化为空数组,以便
add
方法可以设置其元素

function Set() {
    this.elements=[];
    this.size=0;
}

简而言之,您运行的语法错误是由以下代码行引起的:

function Set {
在修复此问题后,
新函数(索引)
/
新函数(对象)
也会导致问题

这不是有效的JS,您可能正在查找:

function Set() {
  this.elements = [];
  this.size = 0;
}

Set.prototype.get = function(index) {
  return this.elements[index];
};

Set.prototype.add = function(object) {
  this.elements[this.size] = object;
  this.size = this.size + 1;
};
请注意,在每个
功能之前也没有
新功能

我不确定创建这个
Set
对象想要实现什么——它看起来像是一个用来保存数组及其大小的包装器,类似于C语言中的实现方式。在JavaScript中,数组可以自由变化,而不必担心内存问题

下面是一个未经测试的重构,它取消了对
Set
的使用,转而支持本机JavaScript功能(主要是可变数组):

var name=ggbApplet.getAllObjectNames();
var行=[];
var角=[];
var组=[];
对于(var i=0;i180){
val-=180;
}
this.value=val;
ggbApplet.setVisible(名称,false);
}

希望这能有所帮助!

简而言之,您运行的语法错误是由于以下代码行造成的:

function Set {
在修复此问题后,
新函数(索引)
/
新函数(对象)
也会导致问题

这不是有效的JS,您可能正在查找:

function Set() {
  this.elements = [];
  this.size = 0;
}

Set.prototype.get = function(index) {
  return this.elements[index];
};

Set.prototype.add = function(object) {
  this.elements[this.size] = object;
  this.size = this.size + 1;
};
请注意,在每个
功能之前也没有
新功能

我不确定创建这个
Set
对象想要实现什么——它看起来像是一个用来保存数组及其大小的包装器,类似于C语言中的实现方式。在JavaScript中,数组可以自由变化,而不必担心内存问题

下面是一个未经测试的重构,它取消了对
Set
的使用,转而支持本机JavaScript功能(主要是可变数组):

var name=ggbApplet.getAllObjectNames();
var行=[];
var角=[];
var组=[];
对于(var i=0;i180){
val-=180;
}
this.value=val;
ggbApplet.setVisible(名称,false);
}

希望这会有帮助!

谢谢你解决这个问题!正如你所看到的,我是一个完全的初学者,但现在我的代码可以工作了。谢谢!!!@user2804125我很高兴我能提供帮助!我们都必须从某个地方开始。我自己正在尝试进入游戏编程领域,这与我以前的情况大不相同:)谢谢你解决这个问题!正如你所看到的,我是一个完全的初学者,但现在我的代码可以工作了。谢谢你@用户2804125我很高兴能帮上忙!我们都必须从某个地方开始。我自己也在尝试进入游戏编程领域,这与我过去的习惯大不相同:)