簡體   English   中英

無法讀取函數中未定義的屬性“0”(p5.js)

[英]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.j​​s 中內置函數的名稱
您必須為您的函數選擇一個不同的名稱。 因此,將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM