我4天前开始学习javascript,我正在尝试将python项目转换为javascript进行实践。
下面是我的python代码:
def shuffle(l):
for shuffles in range(numPerformed):
heads = 0
#tails = 0
toss = []
for card in range(numCards):
x = np.random.randint(2)
toss.append(x)
if x == 0:
heads += 1
#else:
#tails += 1
left = l[:heads] #left hand
right = l[heads:] #right hand
shuffled = [] #shuffled deck
for card in range(numCards):
if toss[card] == 0:
shuffled.append(left.pop(0))
if toss[card] == 1:
shuffled.append(right.pop(0))
l = shuffled
return l
numCards = int(input("Enter number of cards in deck: "))
l = list(range(numCards))
numPerformed = int(input("Enter number of shuffles to perform on deck: "))
print(shuffle(l))
我用抛硬币的方法来做即兴演奏。这是我的js代码,但有些东西导致它给出了错误的答案:
const list = (numCards) => {
var newList = []
var i = 0;
while (i < numCards){
newList.push(i);
i++;
}
return newList
}
function shuffle(l, numPerformed){
for (var shuffles = 0; shuffles < numPerformed; shuffles++){
var heads = 0;
var tails = 0;
var toss = [];
for (var card = 0; card < l.length; card++){
var x = Math.floor(Math.random() * 2);
toss.push(x);
if (x == 0){
heads++;
}else{
tails++;
}
}
var left = []; //l[:heads]
var right = []; //l[heads:]
for (var i = 0; i < l.length; i++){
i < heads ? left.push(i) : right.push(i);
}
var shuffled = [];
for (var card = 0; card < numCards; card++){
if (toss[card] == 0){
shuffled.push(left.shift());
}else if (toss[card] == 1){
shuffled.push(right.shift());
}
}
l = shuffled;
}
return l
}
var numCards = parseInt(prompt("Enter number of cards in deck: "))
var l = list(numCards)
var numPerformed = parseInt(prompt("Enter number of shuffles to perform on deck: "));
console.log(shuffle(l))
我做错什么了?我认为这个错误是由于我对javascript语法缺乏经验造成的。
1条答案
按热度按时间e3bfsja21#
我想,你的代码应该和这个等价