在JavaScript中将一个对象动态添加到另一个对象
Dynamically adding one object to another in JavaScript
当用户选择某个值时,我有一个对象需要添加另一个对象。这个对象是一个保存基本信息的玩家对象,我还有一个保存武器信息的武器对象。当用户选择要使用的武器时,我想将武器对象添加到玩家对象中,如果用户选择了不同的武器,我想删除以前的武器对象并添加新的武器对象。这可能吗?这会像将值推入数组一样吗?
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'
,您就可以在以后根据需要引用它。
是的,你会将玩家选择的武器存储在一个空数组中。。。
var Player = {
name: "One",
weapon: []
}
然后将武器推入阵列。
Player.weapon.push({ name: 'Sword', obj: Sword });
如果你想在添加新武器之前清空阵列,你可以这样做。。。
Player.weapon.empty();
或者。。。
Player.weapon = [];
你可以做…
Player.weapon = Sword
但是你的玩家只能选择一种武器。如果你这样做,我会这样做。。。
Player.weapon = { name: 'Sword', obj: Sword };
或者在武器对象上存储名称属性。
希望对有所帮助
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何使用jQuery添加另一个对象的高度作为边距
- 如何将一个对象添加到每个对象数组中
- js:如何制作一个循环,将20个不同的东西添加到一个对象中
- 将另一个文件中的对象添加到单独文件中的阵列中
- 我需要使用什么语法来向一个对象的成员添加一个临时数组,该成员等同于一个字符串的通用列表
- 将不同JList中的对象添加到一个JList中
- 在JavaScript中将一个对象动态添加到另一个对象
- 如何在javascript中为每个JSON对象添加一个JSON数组
- Javascript事件处理程序总是被添加到数组中的最后一个对象
- 在Javascript中向Array对象添加一个方法
- JS将对象推送到变量,将最后一个对象添加到所有元素中
- 将属性从一个对象添加到另一个对象
- 执行for循环将另一个对象添加到Javascript中的作用域链中
- javascript将一个对象添加为另一个对象的成员
- Node.js为一个对象添加多个属性
- 如何将一个对象添加到另一个对象
- 将文件中的另一个对象添加到Javascript对象数组中
- Javascript会同时为一个对象添加多个属性
- 将另一个对象添加到现有 JSON 中