【问题标题】:for loop cant find object value in arrayfor循环在数组中找不到对象值
【发布时间】:2012-03-09 10:10:51
【问题描述】:

我有一个以卡片为对象的数组:

$(document).ready(function() {
    var totalPlayer = 12;    
var cards = [
            {"card": 2, "value": 2, "suit": "d"}, 
            {"card": 2, "value": 2, "suit": "c"}, 
            {"card": 2, "value": 2, "suit": "h"}, 
            {"card": 2, "value": 2, "suit": "s"}, 
            {"card": 3, "value": 3,...
            {"card": "a", "value": 11, "suit": "s"}];
$('#butStart').click(processIt);

还有一个循环:

function processIt() {
    for (var i = 0; i < cards.length; i++) {
        if (cards[i].card === "a" && totalPlayer > 11) {
            cards[i].value = 1;
        }
        else if (cards[i].card === "a") {
            cards[i].value = 11;
        }
    }
    alert(cards[50].value + cards[50].card);
}

我无法弄清楚为什么我会收到错误消息“无法读取未定义的属性 'card'”

【问题讨论】:

  • 您是否尝试过使用for (var i = 0; i &lt; cards.length-1; i++)
  • 您的卡片数组中是否有一个对象的拼写错误
  • 是的,发现它是双“,”,对不起,谢谢大家。
  • 你能检查我的答案吗?如果它适合你,让我们验证它。 :-)

标签: jquery arrays object for-loop


【解决方案1】:

因为您的 JSON 中没有 51 个项目...?

【讨论】:

  • 如果是这样,错误将出现在.value 而不是.card。而且问题中没有任何 JSON。
【解决方案2】:

你必须引用你所有的数据,我已经试过了,它就像一个魅力:

var cards = [
            {"card": "2", "value": "2", "suit": "d"}, 
            {"card": "2", "value": "2", "suit": "c"}, 
            {"card": "2", "value": "2", "suit": "h"}, 
            {"card": "2", "value": "2", "suit": "s"}, 
            {"card": "3", "value": "3",...
            {"card": "a", "value": "11", "suit": "s"}];

另外,您需要将数据传递给您的函数:

$('#butStart').click(processIt(cards));
function processIt(cards) {...}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2017-12-11
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多