Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript更新关联数组中的单个值_Javascript_Associative Array - Fatal编程技术网

Javascript更新关联数组中的单个值

Javascript更新关联数组中的单个值,javascript,associative-array,Javascript,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 = ne

我有一个关联数组,其中键是字符串,值是整数数组

    {"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'));
    });
});
var-rigorLabels=$('.subHeader',standardsTable);
var itemCounts=新数组($('.itemtypelab',standardsTable).length);
对于(变量i=0;i
在上面的代码中,除了我点击代码更新rigorArray外,其他一切似乎都正常工作。此时,我应该更新整数数组中的单个对象和单个值。我遇到的问题是,它正在更新所有对象。因此,如果我试图更新记忆对象的2位置,更新是为所有对象设置第二位置的值,而不仅仅是记忆。

这是正常的工作。 在JS中存在对象(对象、数组)之间的引用。 这就是为什么必须对对象进行递归复制(创建新对象/数组),以防止链接。 在我们的例子中,您可以使用“concat”函数

示例如下:

当使用
parseInt
而不指定基数参数时,使用or来查看行为也是很有用的
enter code here