Javascript p5.js 27646:未捕获类型错误:无法读取属性';0';未定义的

Javascript p5.js 27646:未捕获类型错误:无法读取属性';0';未定义的,javascript,typeerror,p5.js,Javascript,Typeerror,P5.js,我用JavaScript p5.js编写代码时遇到了以下错误行: 27646:未捕获的TypeError:无法读取未定义的属性“0” 我不知道这意味着什么,因为我对JavaScript不是很有经验。这对我来说也是可疑的,因为我的项目在任何地方都没有27646行 这是我的密码: var particles = []; const word0 = 'p5.js', word1 = 'is nice'; var active, inactive; var cooldown;

我用JavaScript p5.js编写代码时遇到了以下错误行:

27646:未捕获的TypeError:无法读取未定义的属性“0”

我不知道这意味着什么,因为我对JavaScript不是很有经验。这对我来说也是可疑的,因为我的项目在任何地方都没有27646行

这是我的密码:

  var particles = [];
  const word0 = 'p5.js',
    word1 = 'is nice';
  var active, inactive;
  var cooldown;
  var font;

  function preload() {
      font = loadFont('data/LucidaSansRegular.ttf');
  }

  function setup() {
      createCanvas(600, 300);
      active = font.textToPoints(word0, 50, 200, 200);
      inactive = font.textToPoints(word1, 50, 200, 200);

      cooldown = 500;

      for (var i = 0; i < active.length; i++) {
        particles.push(new Particle(active[i].x, active[i].y));
      }
  }

 function draw() {
      background(60);

      noStroke();
      fill(255);

      for (var i = 0; i < particles.length; i++) {
        if (particle[i].radius < 0) {
           particles.splice(i, 1);
           continue;
        }

        if (cooldown < 0) {
           particles[i].forceToDes();
        } else {
           particles[i].fleeFromDes();
        }

        particles[i].update();
        particles[i].show();
     }

     if (cooldown < 500 && cooldown > -500) {
       cooldown--;
     } else {
       cooldown++;
     }

     if (cooldown == -499) {
       changeText();
     }
 }

function changeText() {
     switchActive();

     if (active.length == inactive.length) {
       for (var i0 = 0; i0 < active.length; i0++) {
          particles[i0].des = createVector(active[i0].x, active[i0].y)
       }
     } else if (active.length > inactive.length) {
       for (var i1 = 0; i1 < particles.length; i1++) {
          particles[i1].des = createVector(active[i1].x, active[i1].y);
     }

       for (var i2 = 0; i2 < active.length - inactive.length; i2++) {
          var p = new Particle(active[i2].x, active[i2].y),
            r = particles.random();
          p.pos = r.pos;
          particles.push(p);
       }
    } else {
       for (var i3 = 0; i3 < inactive.length - active.length; i3++) {
         var r = floor(random(particles.length));
         particles[r].shrink();
       }

      for (var i4 = 0; i4 < particles.length; i4++) {
         particles[i4].des = createVector(active[i4].x, active[i4].y);
      }
  }
}

function switchActive() {
   var temp = active;
   active = inactive;
   inactive = temp;
}
var粒子=[];
const word0='p5.js',
word1=‘很好’;
var活跃,非活跃;
var冷却;
var字体;
函数预加载(){
font=loadFont('data/LucidaSansRegular.ttf');
}
函数设置(){
createCanvas(600300);
active=font.textToPoints(word0、50、200、200);
inactive=font.textToPoints(word1、50、200、200);
冷却时间=500;
对于(变量i=0;i-500){
冷却--;
}否则{
冷却++;
}
如果(冷却时间==-499){
changeText();
}
}
函数changeText(){
开关激活();
if(active.length==inactive.length){
对于(var i0=0;i0inactive.length){
对于(var i1=0;i1
我希望你能帮助我:)
已经谢谢你了

请将您的代码发布为我们可以复制并粘贴以运行的。当我试图运行你的代码时,我得到一个错误,因为我没有你试图加载的字体。要么包含字体文件,要么修改代码,这样我们就不需要字体文件

但只要看看你的代码,我就会明白:

for (var i = 0; i < particles.length; i++) {
  if (particle[i].radius < 0) {
这里您正在设置一个尚未定义的变量


当您的代码包含多个类似这样的错误时,通常意味着您不是在进行小块测试。你真的应该养成独立工作的习惯,只测试一小部分,直到你的工作完美为止。这也让你在被卡住时更容易发布MCVE。

你的问题是你的word1字符串中有一个空格

textToPoints()不处理不可打印的字符


尝试一个没有空格的字符串,或者将字符串拆分为多个字符串,然后合并点数组。

在draw()循环的开始处
if(particle[i].radius<0){
应该是“particles”而不是“particle”啊,非常感谢。我认为错误消息是:如果“particle”是-问题是唯一的问题。@Steve就像我说的,如果你想让我们帮助你,你必须发布一个帖子。如果我们不能运行你的代码,我们无法帮助你。谢谢你为neAwesome修复了它。很高兴我能帮上忙。
r = particles.random();