我在Google上搜索了很多,但没有找到满意的答案。在打字稿中搜索打字错误面临以下代码:
// @strict: false
let suits = ["hearts", "spades", "clubs", "diamonds"];
function pickCard(x: any): any {
// Check to see if we're working with an object/array
// if so, they gave us the deck and we'll pick the card
if (typeof x == "object") {
let pickedCard = Math.floor(Math.random() * x.length);
return pickedCard;
}
// Otherwise just let them pick the card
else if (typeof x == "number") {
let pickedSuit = Math.floor(x / 13);
return { suit: suits[pickedSuit], card: x % 13 };
}
}
let myDeck = [
{ suit: "diamonds", card: 2 },
{ suit: "spades", card: 10 },
{ suit: "hearts", card: 4 },
];
let pickedCard1 = myDeck[pickCard(myDeck)]; //<--- HERE IS DOUBT
alert("card: " + pickedCard1.card + " of " + pickedCard1.suit);
let pickedCard2 = pickCard(15);
alert("card: " + pickedCard2.card + " of " + pickedCard2.suit);
我想知道那是什么表情?我是否在将对象数组传递为参数的对象数组内调用函数?是啊 为什么不能像这样直接调用函数:
let pickedCard1 = pickCard(myDeck);
我总是把我定义为退货。抱歉,jr问题,但我想更好地理解javascript。谢谢大家
您的问题是您离开了object
分支机构-您返回number
而不是Card
:
let pickedCard: number = Math.floor(Math.random() * x.length);
// This is really `pickedCardIndex`
相反,请使用来检查传入的值是否为Array Array.isArray
,然后在数组的最后一步进行索引:
if (Array.isArray(x)) {
let pickedCardIndex = Math.floor(Math.random() * x.length);
return x[pickedCardIndex];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句