let PW = 26;
let pwArray = [0,1,2,3,4,5,6,7,8,9]
let submitEl = document.getElementById("submit");
let element = "";
for (let index = 0; index < pwArray.length; index++) {
    const RandomNum = Math.floor(Math.random()*pwArray.length);
    let pwSlice = pwArray.slice(RandomNum,RandomNum+1)
    let PWc = pwSlice*RandomNum;
     element += pwArray[PWc];
    
}
console.log(element);
為什麼會出現undefined?
問題出在最後兩段,
let pwSlice = pwArray.slice(RandomNum,RandomNum+1)
//下方
let PWc = pwSlice*RandomNum;
element += pwArray[PWc];
我不清楚你要是做什麼功能,所以不清楚要怎麼修改。
不過可以確定PWc有可能會超出pwArray的最大index,
所以找不到數值,自然就是undefined。
例如:
//RandomNum = 6
let pwSlice = [6]
let PWc = [6]*6 = 36
element += pwArray[36];//找不到,自然是undefined
題外話: pwSlice是陣列,拿去乘上數字RandomNum,很奇怪。
雖然因為pwSlice裡只有一個數字,所以不會出錯,但如果有兩個以上就會出錯。
把倒數第四列改成如下element += '['+PWc+']'; //pwArray[PWc];
就可以知道程式會去存取超出 pwArray 個數的位置
導致 undefined