为什么我的JavaScript数组在应该只有一个时会显示两个元素?

时间:2015-06-26 17:02:46

标签: javascript arrays

我有一个JS数组,它应该只显示一个元素。但确实如此,它的索引是1而不是0,计数是2.此外,数组不显示0索引。

我的代码:

var _UnitOfMeasureRelatedUnitData = [];
var rows = $('#jqxUOMRelatedUnitsDropdownGrid').jqxGrid('getrows');
var RecordCount = 0;

if (rows.length !== 1 && rows[0]["UOMRelatedUnit_Name"] !== ""){
    for(var i = 0; i < rows.length; i++){
        var row = rows[i];
        var _row = {};
        if(row.UOMRelatedUnit_AddItem !== F) {
            RecordCount += 1;
            _row["Name"] = $("#txtUnitOfMeasureSetName").val();
            _row["Active"] = T;
            _row["UnitOfMeasureTypeID"] = $("input[type='radio'][id='rblUnitOfMeasureType']:checked").val();
            _row["BaseUnitID"] = $("input[type='radio'][id='rblUnitOfMeasureBaseUnit']:checked").val();
            _row["RelatedUnitDisplayOrder"] = RecordCount;
            _row["RelatedUnitName"] = row.UOMRelatedUnit_Name;
            _row["RelatedUnitAbbreviation"] = row.UOMRelatedUnit_Abbreviation;
            _row["RelatedUnitConversionRatio"] = row.UOMRelatedUnit_ConversionOfBaseUnits;
            _row["UnitOfMeasureSetID"] = UnitOfMeasureSetID;
            _UnitOfMeasureRelatedUnitData[i] = _row;
        }
    }
....
}

在我的JQx网格中,我至少有四种选择。对于这个问题,我只在网格中选择了2个选项,其AddItem值为True,其他一切都为False。

我需要改变我的逻辑,因为我现在还看不到它?

编辑1

我忽略了RecordCount += 1;的位置,我会尝试将其移至作业的末尾,看看会发生什么。

编辑2

这个位置没有区别。

1 个答案:

答案 0 :(得分:1)

维护另一个变量以便像这样索引数据

var index=0; // place this outside of for loop

_UnitOfMeasureRelatedUnitData[index++] = _row;

你不需要RecordCount += 1;

您可以使用_UnitOfMeasureRelatedUnitData.length

获取行数