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

Javascript Updating single values in associative array

本文关键字:单个值 数组 更新 关联 Javascript      更新时间:2023-09-26

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

    {"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