Javascript 更新关联数组中的单个值
Javascript Updating single values in associative array
我有一个关联数组,其中键是字符串,值是整数上的数组。
{"Remebering":[0,0,0,0,0,0,0,0,0,0,0],
"Understanding":[0,0,0,0,0,0,0,0,0,0,0],
"Analyzing":[0,0,0,0,0,0,0,0,0,0,0]}
我正在循环遍历每个对象,然后更新数组中的值。
var rigorLabels = $('.subHeader', standardsTable);
var itemCounts = new Array($('.itemTypeLabel', standardsTable).length);
for (var i = 0; i < itemCounts.length; i++)
{
itemCounts[i] = 0;
}
var rigorArray = [];
for (var i = 1; i < rigorLabels.length; i++)
{
rigorArray[rigorLabels[i].innerHTML.toString()] = itemCounts;
}
$('.itemTypeLabel', standardsTable).each(function (itemIndex)
{
itemTypes += '"' + $(this).html() + '",';
var itemTypeName = $(this).html().replace(' ', '').replace('/', '');
$('.subHeader:not(:First)', standardsTable).each(function() {
var rigorName = $(this).html().toString();
var itemInput = $('#' + $(this).html() + '_' + itemTypeName + '_input');
if(typeof (itemInput.attr('value')) != 'undefined' && itemInput.attr('value') != '')
rigorArray[rigorName][itemIndex] = parseInt(itemInput.attr('value'));
});
});
除了我点击代码更新 rigorArray 之外,所有内容似乎都在上面的代码中工作。 此时,我应该更新整数数组中的单个对象和单个值。 我遇到的问题是它正在更新所有对象。 因此,如果我尝试更新"记住"对象的 2 个位置,则更新会将值设置为所有对象的第二个位置,而不仅仅是"记住"。
这是
正常的JS工作。在JS存在对象(对象,数组(之间的引用。这就是为什么你必须制作对象的递归副本(创建新的对象/数组(,以防止链接。在我们的例子中,您可以使用"concat"功能。
此处的示例:http://jsfiddle.net/0a46s334/
enter code here
相关文章:
- Lodash 从值数组中查找数组中的值
- 使用Undercore获取属性值数组
- 选择具有值数组的所有元素的最有效方法
- 使用jquery grep过滤具有值数组的json对象
- 如何使用JQuery将值数组插入到数据库中
- 创建属性值数组,其中属性名称以特定字符串结尾
- 如何在jqueryajax中发布值数组
- 如何在不赋值数组变量的情况下读取数组数据
- Lodash 从与值数组不匹配的数组中获取项目
- 下划线,将对象列表转换为对象值数组
- 将键/值数组中的对象与另一个对象(键/值)进行比较
- 使用Node中的Q promise库对值数组顺序调用/执行相同的函数;并返回带有结果的新数组/集合
- 创建一个计算值数组,该数组绑定到AngularJS中的其他输入
- 将JavaScript对象转换为值数组
- 将选定值数组发送到控制器-MVC
- 将键、值对象转换为仅值数组
- 如何将JSON数组转换为键值数组
- 使用一个键的值数组过滤多个javascript对象
- javascript唯一值数组中的唯一随机值
- Lodash将对象数组转换为单个键数组和多个值数组