前往顾页
以后地位: 主页 > 收集编程 > Jsp实例教程 >

Javascript索引超出了数组边界(数组越界)启事、示例及处理

时候:2017-11-06 22:58来源:知行网www.zhixing123.cn 编辑:麦田守望者

不管是甚么说话,偶尔都会碰到索引超出了数组边界如许的错误提示,也就是数组越界(所用数组索引超出了数组实际索引)。比方,一个数组只需5个元素,数组索引(下标)又是从0开端的,如果定义的数组为 a,如许取取值 a[5],则会报数组越界错误,因为最后一个元素的索引是4,取最后一个元素应当如许 a[4]。

  当然,在实际开辟过程中很少会犯这么初级的错误,凡是都是法度运行产生的静态数组,因某些环境一时没有考虑到而致数组越界。接着就举例一些常见的索引超出了数组边界示例,为满足不合的需求,将举 javascript、C# 等说话的实例。

 

  一、javascript 索引超出了数组边界示例

  1、示例一:数组索引误从1开端,代码以下:

  var arr = [1, 2, 3, 4, 5, 6];

 

  错误:

  for(var i = 1; i <= arr.length; i++){
    var tmp = arr[i];//当 i = arr.length,数组越界
  }

 

  精确:

  for(var i = 0; i < arr.length; i++){
    var tmp = arr[i];
  }

 

  2、未判定数组长度,随便取值导致数组越界

  假定要获得网页的所有 div 标签,事前没判定有多少个 div,就直接用下标取值,代码以下:

  var arr = document.getElementsByTagName("div");
  var temp = arr[1];

 

  如果网页中没有 div 或只需一个 div,则 arr[1] 会产生数组越界错误,精确代码应当加一句判定:

  if(arr.length > 1){
    var temp = arr[1];
  }

 

 

  2、C# 索引超出了数组边界示例

  假定要取一个文件夹中的所有文本文件,如果用数组长度取最后一个元素,则会产生数组越界错误,代码以下:

  /// <summary>
  /// C#获得一个文件夹中所有文本文件
  /// </summary>
  /// <param name="path">文件夹途径</param>

  private void GetTxtFiles(string path)
  {
    DirectoryInfo di = new DirectoryInfo(path);
    FileInfo[] arrFi = di.GetFiles("*.txt");

    //错误
    string temp = arrFi[arrFi.Length].Name;//用数组长度取最后一个元素,则产生数组越界

    //精确
    string temp = arrFi[arrFi.Length - 1].Name;
  }

  调用:

  GetTxtFiles("G:\xq\test");

顶一下
(0)
0%
踩一下
(0)
0%
------分开线----------------------------
标签(Tag):Javascript
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣