[英]Cannot read property '0' of undefined in a function (p5.js)
At the first line of my code I put var array = []
but I get the error pointing towards this function.在我的代码的第一行,我放了
var array = []
但我得到了指向这个函数的错误。 If I log array before calling the function its exactly what it's supposed to be but if I do that anywhere inside the function it doesn't get logged before the error如果我在调用函数之前记录数组它应该是什么,但是如果我在函数内部的任何地方这样做,它在错误之前不会被记录
let elements = 25 var array = [] let goal = [] let tempAr = [] let i = 1 function setup() { // put setup code here createCanvas(600, 600) background(25) // make the goal array ascending while (goal.length < elements) { goal.push(i) i++ } // make the scrambled array i = 0 tempAr = goal while (i < elements) { let rng = Math.floor(random(tempAr.length)) array.push(tempAr[rng]) tempAr.splice(rng, 1) i++ } } function draw() { fill('#f1f442') drawRect() sort() } function drawRect() { i = 1 while (i <= elements) { rect(i * (width / elements) - (width / elements), height - array[i - 1] * height / elements, width / elements, array[i - 1] * height / elements) i++ } } function sort() { let sorted = false while (!sorted) { sorted = true var e = 0 while (e < array.length) { if (array[e] > array[e + 1]) { let temp = array[e + 1] array[e + 1] = array[e] array[e] = temp sorted = false } drawRect() e++ } } }
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.js"></script>
sort()
is the name of a built-in function in p5.js . sort()
是p5.js 中内置函数的名称。
You've to choose a different name for your function.您必须为您的函数选择一个不同的名称。 So rename
sort
to something else (eg mysort
) to make your code run.因此,将
sort
重命名为其他名称(例如mysort
)以使您的代码运行。
let elements = 25 var array = [] let goal = [] let tempAr = [] let i = 1 function setup() { // put setup code here createCanvas(600, 600) background(25) // make the goal array ascending while (goal.length < elements) { goal.push(i) i++ } // make the scrambled array i = 0 tempAr = goal while (i < elements) { let rng = Math.floor(random(tempAr.length)) array.push(tempAr[rng]) tempAr.splice(rng, 1) i++ } } function draw() { fill('#f1f442') drawRect() mysort() } function drawRect() { i = 1 while (i <= elements) { rect(i * (width / elements) - (width / elements), height - array[i - 1] * height / elements, width / elements, array[i - 1] * height / elements) i++ } } function mysort() { let sorted = false while (!sorted) { sorted = true var e = 0 while (e < array.length) { if (array[e] > array[e + 1]) { let temp = array[e + 1] array[e + 1] = array[e] array[e] = temp sorted = false } drawRect() e++ } } }
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.