[回到版面]
回應模式
名 稱
內 文
附加圖檔[] []
  • 可附加圖檔類型:GIF, JPG, JPEG, PNG, WEBM,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 3072 KB。
  • 當檔案超過寬 125 像素、高 125 像素時會自動縮小尺寸顯示
  • 目前附加圖檔使用量大小: 262209 KB / 500000 KB
  • 回覆時程式碼縮排會被trim消掉,請善用[code][/code]標色或貼到ideone等網站
  • LaTeX記法可以用「$$」或「\( \)」包起來,例如「$\sum_{k=1}^{k=n} k^2 = \frac{n(n+1)(n+2)}{6}$」
  • 投稿時請點擊畫像認證後,再按下 [送出] 按鈕提交。
  • 鬧板、攻擊性發言、煽動性發言請無視(回應者也無視),並使用del或在貓管理部向管理員回報。
  • 新介面尚處於測試階段,如果有任何問題可以向管理員或於程設交流版反映。

檔名:1586579721588.jpg-(142 KB, 679x960)
142 KB
無題無名20/04/11(六)12:35:21 ID:Yfq4xt6cNo.14150del
請問typescript要怎麼事先宣告陣列的類型?
var Bugs:Bug[][] = [[],[],[],[],[]]

function init() {
var arr = new Array
while (arr.length<25) {
var rand = Math.floor(Math.random()*25)+1;
if (arr.indexOf(rand)==-1){
arr[arr.length]=rand;
}
}
let k = 0
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++){
Bugs[i][j].type=arr[k]
k++
}
}
}

init();
console.log(Bugs)


以上程式碼會顯示
Cannot set property 'type' of undefined
但是我在Bug這個物件有定義type這個屬性
測試過類似的寫法在go或C#都可以正確執行
typescript或javascript是不是有限制或我注意到的地方?
無名20/04/11(六)16:03:49 ID:bk9iE7.INo.14151del
>>14150
你這個問題不是陣列越界嗎?
bugs[][]沒有加入任何bug
js的陣列超出範圍(沒有index這個key)都是undefined
無名20/04/11(六)20:02:33 ID:zziaWpOMNo.14152del
var Bugs:number[][];

function init(iMax: number, jMax: number) {
let arr = [];
for (let i = 0; i < iMax * jMax; i++) {
arr.push(i + 1);
}
for (let i = 0; i < arr.length; i++) {
let rand = Math.floor(Math.random() * arr.length);
[arr[i], arr[rand]] = [arr[rand], arr[i]];
}
let outArr:number[][] = [];
for (let i = 0; i < iMax; i++) {
let tmpArr = [];
for (let j = 0; j < jMax; j++){
let tmp = arr[i * jMax + j];
tmpArr.push(tmp);
}
outArr.push(tmpArr);
}
return outArr;
}

Bugs = init(5, 5);
console.log(Bugs);
無名20/04/12(日)18:57:06 ID:RrSBSpSwNo.14154del
檔名:1586689026655.jpg-(498 KB, 800x1508)
498 KB
已解決,感謝兩位

原來JS沒辦法直接對已經宣告型別的陣列操作,必須先放入元素才行

function init() {
var arr = new Array
for (let i = 0; i < 5; i++) {
while (arr.length <(i+1)*5) {
var rand = Math.floor(Math.random()*25)+1;
if (arr.indexOf(rand)==-1){
arr.push(rand);
Bugs[i].push(new Bug(rand))
} else{continue}
}
}
}

init();
console.log(Bugs)
無名20/04/13(一)00:52:07 ID:A6JJbC5wNo.14155del
>>14154
沒有任何語言可以對空陣列操作元素


【刪除文章】[]
刪除用密碼: