[英]p5.js 27646: Uncaught TypeError: Cannot read property '0' of undefined
[英]Cannot read property '0' of undefined in a function (p5.js)
在我的代碼的第一行,我放了var array = []
但我得到了指向這個函數的錯誤。 如果我在調用函數之前記錄數組它應該是什么,但是如果我在函數內部的任何地方這樣做,它在錯誤之前不會被記錄
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()
是p5.js 中內置函數的名稱。
您必須為您的函數選擇一個不同的名稱。 因此,將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.