javascript - 如何将对象插入数组,然后调用该数组中对象的部分内容

标签 javascript arrays blackjack

我正在用Javascript制作一个二十一点游戏,需要为每张牌创建对象,以便多张牌等于10。然后我调用一个随机数并将相应的牌插入数组dealerArr中,我的问题是当我想要的时候将数组中这些对象的值添加在一起,这似乎不可能,这是代码。

var dealerArr = [];
var playerArr = [];
var dealerTotal = 0;
var playerTotal = 0;
var two = {
  value: 2
}
var three = {
  value: 3
}
var four = {
  value: 4
}
var five = {
  value: 5
}
var six = {
  value: 6
}
var seven = {
  value: 7
}
var eight = {
  value: 8
}
var nine = {
  value: 9
}
var ten = {
  value: 10
}
var jack = {
  value: 10
}
var queen = {
  value: 10
}
var king = {
  value: 10
}
var ace = {
  value: 11
}


function calcTotal(arr) {
  var sum = 0;
  for (var object of arr) {
    sum += object.value;
  }
  return sum;
}

while (calcTotal(dealerArr) < 17) {
  var randomCard = (Math.floor(Math.random() * 13) + 1)
  if (randomCard = 1) {
    dealerArr.push(two);
  } else if (randomCard = 2) {
    dealerArr.push(three);
  } else if (randomCard = 3) {
    dealerArr.push(four);
  } else if (randomCard = 4) {
    dealerArr.push(five);
  } else if (randomCard = 5) {
    dealerArr.push(six);
  } else if (randomCard = 6) {
    dealerArr.push(seven);
  } else if (randomCard = 7) {
    dealerArr.push(eight);
  } else if (randomCard = 8) {
    dealerArr.push(nine);
  } else if (randomCard = 9) {
    dealerArr.push(ten);
  } else if (randomCard = 10) {
    dealerArr.push(jack);
  } else if (randomCard = 11) {
    dealerArr.push(queen);
  } else if (randomCard = 12) {
    dealerArr.push(king);
  } else if (randomCard = 13) {
    dealerArr.push(ace);
  }
  console.log(dealerTotal)
}

最佳答案

problem是您在 if 语句中使用了 = 而不是 ==

JS(以及更多语言)中的单个 equals 会执行 assignment ,而双倍和三倍等于 comparision

所以请使用这种格式:

var dealerArr = [];
var playerArr = [];
var dealerTotal = 0;
var playerTotal = 0;
var two = {
  value: 2
}
var three = {
  value: 3
}
var four = {
  value: 4
}
var five = {
  value: 5
}
var six = {
  value: 6
}
var seven = {
  value: 7
}
var eight = {
  value: 8
}
var nine = {
  value: 9
}
var ten = {
  value: 10
}
var jack = {
  value: 10
}
var queen = {
  value: 10
}
var king = {
  value: 10
}
var ace = {
  value: 11
}


function calcTotal(arr) {
  var sum = 0;
  for (var object of arr) {
    sum += object.value;
  }
  return sum;
}

while (calcTotal(dealerArr) < 17) {
  var randomCard = (Math.floor(Math.random() * 13) + 1)
  if (randomCard == 1) {
    dealerArr.push(two);
  } else if (randomCard == 2) {
    dealerArr.push(three);
  } else if (randomCard == 3) {
    dealerArr.push(four);
  } else if (randomCard == 4) {
    dealerArr.push(five);
  } else if (randomCard == 5) {
    dealerArr.push(six);
  } else if (randomCard == 6) {
    dealerArr.push(seven);
  } else if (randomCard == 7) {
    dealerArr.push(eight);
  } else if (randomCard == 8) {
    dealerArr.push(nine);
  } else if (randomCard == 9) {
    dealerArr.push(ten);
  } else if (randomCard == 10) {
    dealerArr.push(jack);
  } else if (randomCard == 11) {
    dealerArr.push(queen);
  } else if (randomCard == 12) {
    dealerArr.push(king);
  } else if (randomCard == 13) {
    dealerArr.push(ace);
  }
  console.log(dealerTotal)
}

关于javascript - 如何将对象插入数组,然后调用该数组中对象的部分内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54812936/

相关文章:

javascript - 等待异步函数并 promise 完成

javascript - 点击表单中的提交按钮后如何显示隐藏的div?

JavaScript 正则表达式问题 - 匹配然后拆分

c++ - 为什么断点显示我的数组的第二个值是一个很大的数字?额外学分工作

java - 为 JButton 提供多个鼠标点击选项(二十一点游戏)

java - 将数组转换为 ArrayList

javascript - config.js 不适用于 CKEditor

javascript - 用 panby 偏移谷歌地图中心

php - 将数组转换为逗号分隔值

javascript - 将两个值分配给对象中的一个键