为什么这段代码覆盖我的对象,当我想要它添加到对象
Why does this code overwrite my object when i want it to add to the object
我有以下代码。一切都如我所愿,除了一件事。当用户输入另一个item_name(保持room_name不变)时,它会擦除原来的item_name。我需要的是在对象
中添加另一项<div class="container">
<div class="row">
<div class="col-md-4">
<form>
<div class="form-group">
<input type="text" name="room_name" id="room_name" class="form-control" placeholder="Room name">
</div>
<div class="form-group">
<input type="text" name="item_name" id="item_name" class="form-control" placeholder="Item name">
</div>
<div class="form-group">
<input type="text" name="item_description" id="item_description" class="form-control" placeholder="Item description">
</div>
<div class="form-group">
<input type="text" name="inventory" id="inventory" class="form-control" placeholder="DEBUG">
</div>
<div class="form-group">
<a id="submitinv" class="btn btn-success btn-block">Submit</a>
</div>
<table id="list" class="table table-striped">
<tr>
<th>ROOM NAME</th>
<th>ITEM NAME</th>
<th>ITEM DESCRIPTION</th>
</tr>
</table>
</form>
</div>
</div>
</div>
<script>
roominventory = {};
obj = {};
$('#submitinv').click(function(){
room_name = $('#room_name').val();
item_name = $('#item_name').val();
item_description = $('#item_description').val();
obj[item_name] = item_description;
roominventory[room_name] = obj;
$('#inventory').val(JSON.stringify(roominventory));
obj = {};
$('#list').append('<tr><td>' + room_name + '</td><td>' + item_name + '</td><td>' + item_description + '</td></tr>');
});
</script>
我们告诉worker:
roominventory[room_name] = obj
我们说的是:
Find the key on the object roominventory that is equivalent to the
value room_name. I now want you to assign the value of obj to that key.
听起来这不是你想告诉你的员工的。听起来你想告诉你的员工的是:
Find the key on the object roominventory that is equivalent to the
value room_name. Now add the object to that value.
有几种方法可以做到这一点,最简单的是使roominventory
对象中的每个键都是一个数组,这样做:
// First we check if we have messed with this key before
if(roominventory[room_name] !== undefined){
// if we have, let's just push our new object onto the list
roominventory[room_name].push(obj)
}else{
// if we haven't, let's create a list of a single item to add to later
roominventory[room_name] = [obj]
}
相关文章:
- 在多行图表中,在每一行的末尾,我想要一个小圆圈和使用d3.js的端点值
- 我想要相同的函数以两种方式反应
- 如何在javascript中创建一个空的2d数组?下面是我想要创建的一个示例
- 如何用javascript发送多个文件没有jQuery我想要每个文件一个进度条
- 我想要一个类似于网站 https://onlycoin.com/ 的jQuery鼠标滚动动画效果
- 我想要“鼠标滚轮事件延迟”
- 如何格式化我返回的url,使其符合我想要的路由
- 如何使用facet指定我想要的字段
- json_encode($myVar);正在给出地图,我想要一个字符串数组
- 我想要输入类型<输入>在javascript中
- Javascript:我可以't找到正确的方式来表达布尔“;如果“;以得到我想要的结果
- 如何用javascript从数组中删除项?我想要一个类似拉的东西来做与推相反的事情
- 正则表达式对我想要做的事情是正确的吗?
- Javascript给定了一个数字,我想要所有可能的组合和元素数组
- 为什么获胜't我的javascript返回我想要的值
- 通过 javascript 将值从子页面返回到父页面时面临的问题.它正在返回对象,我想要值
- 当我想要设置对象属性时,输入中的未定义值
- 我如何通过另一个对象访问一个对象,这个对象包含一个对象,这个对象是我想要访问的对象的属性
- 为什么这段代码覆盖我的对象,当我想要它添加到对象
- 日期以字符串格式显示在json对象中.我想要它的日期格式,因为我想显示它