javascript - 在 JavaScript 中动态地将一个对象添加到另一个对象

标签 javascript jquery

我有一个对象,当用户选择某个值时,需要向其中添加另一个对象。该对象是一个保存基本信息的玩家对象,我还有一个保存有关武器信息的武器对象。当用户选择要使用的武器时,我想将武器对象添加到玩家对象中,如果用户选择不同的武器,我想删除以前的武器对象并添加新的武器对象。这可能吗?这就像将值插入数组吗?

HTML

<select>
    <option></option>
    <option>Sword</option>
    <option>Axe</option>
    <option>Hammer</option>
</select>

JS

var Player = {
    name: "One",
    weapon:
}

var Sword = {
    type: "Bronze",
    speed: 1.25,
    min_damage: 15,
    max_damage: 20,
    str_required: 15,
    gems: "",
    hilt: "",
    blade: "",
    inscriptions: "",
    runes: ""
}

var Axe = {
    type: "Bronze",
    speed: 1.5,
    min_damage: 25,
    max_damage: 28,
    str_required: 25,
    gems: "",
    hilt: "",
    blade: "", 
    inscriptions: "",
    runes: ""
}

var Hammer = {
    type: "Bronze",
    speed: 2.5,
    min_damage: 45,
    max_damage: 60,
    str_required: 55,
    gems: "",
    hilt: "",
    blade: "", 
    inscriptions: "",
    runes: ""
}

$("select").on("change", function(){
    var selected_weapon = $(this).val();

    if(selected_weapon == "Sword"){
        Player.weapon = Sword;
        $("#content").append(Player);
    }
    else if(selected_weapon == "Axe"){
        Player.weapon = Axe;
        $("#content").append(Player);
    }
    else if(selected_weapon == "Hammer"){
        Player.weapon = Hammer;
        $("#content").append(Player);
    }
});

最佳答案

在 JS 中将现有对象相互添加非常容易。

就您而言,Player.weapon = Sword;

这会给你

Player = {
    name: "One",
    weapon: {
        type: "Bronze",
        speed: 1.25,
        min_damage: 15,
        max_damage: 20,
        str_required: 15,
        gems: "",
        hilt: "",
        blade: "",
        inscriptions: "",
        runes: ""
    }
}

我建议为每个武器对象添加一个name键。现在,当您查看我上面发布的 Player 对象时,您不知道它拥有哪种武器。因此,只需添加 name: 'Sword' 即可让您稍后根据需要引用它。

关于javascript - 在 JavaScript 中动态地将一个对象添加到另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28565990/

相关文章:

javascript - 阻止用户浏览器缓存 Wakanda 页面?

jquery - 当屏幕分辨率改变时调整图像大小以适应 div

Javascript Web 应用最佳实践

javascript - Google map API 未显示所有标记

Javascript 事件未触发

javascript - 在简单的 Accordion 小部件中切换向上和向下箭头

jquery - 同位素js隐藏的div在显示时不会将div向下推

javascript - 在asp.net mvc中 Controller 函数调用两次

javascript - toastr 没有出现在 ui-router 子状态中

javascript - 查找数组中缺失的组成员