Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript中的变量值访问嵌套对象_Javascript_Object_Nested_Javascript Objects - Fatal编程技术网

使用Javascript中的变量值访问嵌套对象

使用Javascript中的变量值访问嵌套对象,javascript,object,nested,javascript-objects,Javascript,Object,Nested,Javascript Objects,我在做游戏。最终用户将在12架可用战斗机中选择一架。假设他们选择了“Ryu”。但他们本可以选择“春丽”。玩家选择将存储在变量“selectedPlayer”中。现在我需要获取/访问与用户选择相匹配的对象(或其成员)。我尝试了很多方法,包括下面所示的方法,但是我在控制台中得到了:“uncaughtypeerror:无法读取undefined的属性'Ryu' 我需要能够进入“玩家”对象并访问所选fighers对象的成员。我可以写一堆if语句,但那不是很干净。我可以这样做吗 var playerOne

我在做游戏。最终用户将在12架可用战斗机中选择一架。假设他们选择了“Ryu”。但他们本可以选择“春丽”。玩家选择将存储在变量“selectedPlayer”中。现在我需要获取/访问与用户选择相匹配的对象(或其成员)。我尝试了很多方法,包括下面所示的方法,但是我在控制台中得到了:“uncaughtypeerror:无法读取undefined的属性'Ryu'

我需要能够进入“玩家”对象并访问所选fighers对象的成员。我可以写一堆if语句,但那不是很干净。我可以这样做吗

var playerOne = {
    Name: players.<some variable>.Name,
    Country: players.<some variable>.Country,
    Slogan: players.<some variable>.Slogan,
    smImage: players.<some variable>.smImg,
    lgImage: players.<some variable>.lgImg,
    Attack: players.<some variable>.attack
};

var playerTwo = {
    Name: players.<some variable>.Name,
    Country: players.<some variable>.Country,
    Slogan: players.<some variable>.Slogan,
    smImage: players.<some variable>.smImg,
    lgImage: players.<some variable>.lgImg,
    Attack: players.<some variable>.attack
};
var playerOne={
姓名:玩家姓名,
国家:球员……国家,
标语:玩家..标语,
smImage:玩家..smImg,
lgImage:players..lgImg,
攻击:玩家…攻击
};
变量playerTwo={
姓名:玩家姓名,
国家:球员……国家,
标语:玩家..标语,
smImage:玩家..smImg,
lgImage:players..lgImg,
攻击:玩家…攻击
};

也许有不同的想法。我愿意接受任何有效的方法。谢谢。

您需要先定义映射,然后才能访问它。另外,
Ryu
似乎没有
标语

var players = {
    Ryu:  {
        Name: "Ryu",
        Country: "Japan",
        // Shoudldn't this be "Slogan"?
        Text: "The answer lies in the heart of battle.",
        smImg: "../images/small/ryu.png",
        lgImg: "../images/large/ryu.jpg",
        attack: [1,5,10,15,20,25]
    },
    ChunLi: {
        Name: "Chun Li",
        Country: "China",
        Slogan: "Want to see my Kung-Fu? I'll show you.",
        smImg: "../images/small/chunli.png",
        lgImg: "../images/large/chunli.jpg",
        attack: [1,4,11,15,21,25]
    }
}

var selectedPlayer = "Ryu";
var Slogan = players[selectedPlayer]['Slogan']; 
console.log(Slogan);

您需要先定义映射,然后才能访问它。另外,
Ryu
似乎没有
标语

var players = {
    Ryu:  {
        Name: "Ryu",
        Country: "Japan",
        // Shoudldn't this be "Slogan"?
        Text: "The answer lies in the heart of battle.",
        smImg: "../images/small/ryu.png",
        lgImg: "../images/large/ryu.jpg",
        attack: [1,5,10,15,20,25]
    },
    ChunLi: {
        Name: "Chun Li",
        Country: "China",
        Slogan: "Want to see my Kung-Fu? I'll show you.",
        smImg: "../images/small/chunli.png",
        lgImg: "../images/large/chunli.jpg",
        attack: [1,4,11,15,21,25]
    }
}

var selectedPlayer = "Ryu";
var Slogan = players[selectedPlayer]['Slogan']; 
console.log(Slogan);

您的错误是因为您在定义
播放器之前正在引用它。试试这个:

var players = {
    Ryu:  {
        Name: "Ryu",
        Country: "Japan",
        Text: "The answer lies in the heart of battle.",
        smImg: "../images/small/ryu.png",
        lgImg: "../images/large/ryu.jpg",
        attack: [1,5,10,15,20,25]
    },
    ChunLi: {
        Name: "Chun Li",
        Country: "China",
        Slogan: "Want to see my Kung-Fu? I'll show you.",
        smImg: "../images/small/chunli.png",
        lgImg: "../images/large/chunli.jpg",
        attack: [1,4,11,15,21,25]
    }
}

var selectedPlayer = "Ryu";
var Slogan = players[selectedPlayer]['Slogan'];
console.log(Slogan);

您的错误是因为您在定义
播放器之前正在引用它。试试这个:

var players = {
    Ryu:  {
        Name: "Ryu",
        Country: "Japan",
        Text: "The answer lies in the heart of battle.",
        smImg: "../images/small/ryu.png",
        lgImg: "../images/large/ryu.jpg",
        attack: [1,5,10,15,20,25]
    },
    ChunLi: {
        Name: "Chun Li",
        Country: "China",
        Slogan: "Want to see my Kung-Fu? I'll show you.",
        smImg: "../images/small/chunli.png",
        lgImg: "../images/large/chunli.jpg",
        attack: [1,4,11,15,21,25]
    }
}

var selectedPlayer = "Ryu";
var Slogan = players[selectedPlayer]['Slogan'];
console.log(Slogan);

谢谢,我能让它工作了。Ryu的标语是我在将会员名称从“文本”改为“标语”时修正的打字错误。接得好。谢谢,我能让它工作了。Ryu的标语是我在将会员名称从“文本”改为“标语”时修正的打字错误。好的,谢谢你。我在发帖后不久就意识到了我的错误。谢谢你的意见,谢谢。我在发帖后不久就意识到了我的错误。谢谢你的意见。