【问题标题】:I can't get array length in JavaScript我无法在 JavaScript 中获取数组长度
【发布时间】:2014-01-02 03:13:44
【问题描述】:

我有 JavaScript 数组并从 mvc modal 填充数据:

<script type="text/javascript">
    var letterOfResponsibilityNotes = Array(0);

    @if (Model.Step2.SelectedCountryList.Count != 0)
    {
        foreach (var item in Model.Step2.SelectedCountryList)
        {
            <text>letterOfResponsibilityNotes["@item.Code"]='@item.LetterOfResponsibilityNote'</text>
        }
    } 

然后我尝试获取letterOfResponsibilityNotes数组长度:

if ($(letterOfResponsibilityNotes).length > 0)
{ ... }

但我总是得到lenth = 0,尽管我在 FireBug 中看到了数据。

谢谢!

【问题讨论】:

    标签: javascript model-view-controller


    【解决方案1】:

    那是因为@item.Code 不是数字。

    var a = new Array(0);
    a["test1"] = "test1";
    a["test2"] = "test2";
    
    // a.length is still 0 - although it has contents
    
    a["3"] = "try a number";
    
    // now a.length == 4, which is highest number subscript key + 1
    // unfortunately that is how JS arrays work
    

    要查找数组的长度,请参阅Length of a javascript associative array

    【讨论】:

      【解决方案2】:

      试试这个:

      first initialize the as follow in JavaScript.
      
      var letterOfResponsibilityNotes = new Array();
      
      console.log(letterOfResponsibilityNotes.length);
      
      if(letterOfResponsibilityNotes.length > 0)
      {
      
      }
      
      if array have any value it display length of array.
      

      【讨论】:

      • 请打印您的阵列
      【解决方案3】:

      在 IF 上删除“$”。

      if ((letterOfResponsibilityNotes).length > 0)
      { ... }
      

      用 $ 我失败了

      未捕获的引用错误:$ 未定义

      【讨论】:

      • 在循环的每一轮都用letterOfResponsibilityNotes.length放一个'sneak'(对不起,我不知道这个XD的英文名字)来控制数组上的输入数据是否正确跨度>
      猜你喜欢
      • 2018-07-16
      • 2015-05-11
      • 1970-01-01
      • 2020-06-08
      • 2017-02-14
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      相关资源
      最近更新 更多