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