Javascript 通过p5重新绘制画布,删除旧画布

Javascript 通过p5重新绘制画布,删除旧画布,javascript,p5.js,Javascript,P5.js,我希望可视化我的排序算法,并每次重新绘制创建的画布。我的旧画布保留了所有的旧值。它只是创建一个新画布并将其置于旧画布之上。但我认为通过重新绘制我可以解决它。我还试图通过canvas.remove()删除画布并创建一个全新的画布,但也没有成功 我的设置呼叫: let canvas; function setup() { values = new Array(20); this.canvas = createCanvas(values.length*w, 640); createArr

我希望可视化我的排序算法,并每次重新绘制创建的画布。我的旧画布保留了所有的旧值。它只是创建一个新画布并将其置于旧画布之上。但我认为通过重新绘制我可以解决它。我还试图通过
canvas.remove()
删除画布并创建一个全新的画布,但也没有成功

我的设置呼叫:

let canvas;

function setup() {
  values = new Array(20);
  this.canvas = createCanvas(values.length*w, 640);
  createArray(values.length);
  var slider = document.getElementById("slider");
  slider.oninput = function() {
    this.canvas = resizeCanvas(values.length*w, 640);
    length = this.value;
    createArray(length);
    redraw();
  }
  var button = document.getElementById("btn");
    button.onclick = function(){ 
        quickSort(values, 0, values.length - 1);
  }
  
}
还有我的抽签电话:

function draw() {
  background(0);
  for (let i = 0; i < values.length; i++) {
    noStroke();
    if (states[i] == 0) {
      fill('#E0777D');
    } else if (states[i] == 1) {
      fill('#D6FFB7');
    } else {
      fill(255);
    }
    rect(i * w, height - values[i], w, values[i]);
  }
}
函数绘图(){
背景(0);
for(设i=0;i

谢谢您的帮助:)。

使用完画布后,尝试执行canvas=null

您的画布存储在
this.canvas
中。你是想把它分配给
canvas
变量吗?这是我第一次使用js。我的this调用没有获取全局变量吗?
引用了
函数设置()
调用。删除
将使
画布
引用您先前声明的
let canvas
变量。这解决了我的问题,谢谢!