所以我试图创建一个从卡片中抽取卡片的功能,但每当我运行它时,控制台都会给我一条错误信息:“无法读取未定义的属性'长度'”。为什么函数不能计算我的数组中有多少条目?
function draw() {
var suitsdraw = suits[Math.floor(Math.random()*suits.length)];
var suits = ["Hearts","Clovers","Spades","Diamonds"];
var numberdraw = number[Math.floor(Math.random()*number.length)];
var number = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"];
console.log(suitsdraw);
console.log(numberdraw);
}
draw();
答案 0 :(得分:3)
错误消息显示suits
为undefined
。为什么会这样?
因为您在定义之前尝试访问suits
。交换前两行以消除错误。
var suits = ["Hearts", "Clovers", "Spades", "Diamonds"];
var suitsdraw = suits[Math.floor(Math.random() * suits.length)];
但是,你会得到同样的错误,但在第3行。看看有什么问题?
交换第3和第4行,你很高兴。
var number = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"];
var numberdraw = number[Math.floor(Math.random() * number.length)];
PS。使用有意义的变量名并使用camelCase约定。