js数组对象的遍历

想到的有for in循环;for循环;forEach循环

(1)for in

性能问题:

for-in 需要分析出array 的每个属性,这个操作性能开销很大。用在 key 已知的数组上是非常不划算的。所以尽量不要用 for-in,除非你不清楚要处理哪些属性,例如 JSON 对象这样的情况。

(2)for

性能问题:循环每进行一次,就要检查一下数组长度。读取属性(数组长度)要比读局部变量慢,尤其是当 array 里存放的都是 DOM 元素,因为每次读取都会扫描一遍页面上的选择器相关元素,速度会大大降低。

  for (var i=0; i<arr.length; i++){

    //do sth with arr[i];

  }

加速方案:

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

var length =arr.length;

for(var i=0; i<length; i++){

  fn(arr[i]);

}

思路:

现在只需要读取一次 array 的 length 属性,速度已经加快

加速且优雅:

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

var i = arr.length;

while(i--){

  fn(arr[i]);

}

思路:如果循环终止条件不进行比较运算,那么循环的速度还可以更快。

(3)forEach

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

arr.forEach(

  fn(value,index){

    //Do sth with value ;

  }

)

注意:

  • 这里的 forEach回调中两个参数分别为 value,index,其位置刚好和 jQuery 的$.each 相反;
  • forEach 无法遍历对象;
  • IE不支持该方法;Firefox 和 chrome 支持;
  • forEach 无法使用 break,continue 跳出循环,且使用 return 是跳过本次循环;
  • 可以添加第二个参数,为一个数组,回调中的 this 会指向这个数组,若没有添加,则是指向 window;
时间: 2024-10-30 05:23:28

js数组对象的遍历的相关文章

js数组对象以及数组常用属性和方法

定义形式: var  arr1 = new Array(1,  5,  8,  7,  2,  10);  //定义了一个数组,其中具有6个数据 var  arr2 = new Array();                   //只是单纯地定义了一个数组(名),但没有给值(数据),即现在是空的 var  arr3 = [1,  5,  8,  7,  2,  10];  //同arr1,只是一种简写的定义法. var  arr4 = [ ];                  //同arr

微信小程序学习Course 4-2 JS数组对象学习

微信小程序学习Course 3-2 JS数组对象学习 本节主要介绍JS中的数组. 3-2.1 数组的声明 数组声明的方式多种,如下例.一般我们可以先创建一个空数组,然后再填充. var names = [];//创建一个空数组 var names = ["sadad","asdsad"];//创建一个包含两个字符串的数组 var names = new Array(3);//创建一个包含三个元素的数组 3-2.2 数组的增添 数组有多种增添方式,一种是栈方式,另一种

JS数组&amp;对象遍历

遍历的总结,经常用到的,希望帮助你我成长. JS数组遍历: 1,普通for循环 var arr = [1,2,3,4,9]; for ( var i = 0; i <arr.length; i++){ console.log(arr[i]); } 2,优化版for循环:使用变量,将长度缓存起来,避免重复获取长度,数组很大时优化效果明显 for(var j = 0,len = arr.length; j < len; j++){ console.log(arr[j]); } 3,forEach,

js 数组对象的操作方法

在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像JSON数据是以数组的形式出现的,查阅了下相关JS中数组的操作一试果然很爽. 记录下来. 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 va

JS数组对象的定义及相关属性和方法

数组: JS中的数组对象跟java中的集合本质上是一样的,它的长度是可变的.元素可以是任意object类型. 定义: new Array(); new Array(size); new Array(element0, element1, ..., elementn); var array = [element0,element1,...,elementn];//定义一个二维数组 var array2w = [ [element0,element1,...,elementn], [element0

JS数组对象的方法

concat 返回一个新数组,这个数组是由两个或更多数组组合而成的 array.concat(b,c); join 返回字符串值,其中包括了连接到一起的数组的所有元素,元素由指定分隔符分割开来 array.join(',') pop 移除数组中的最后一个元素并返回该元素 array.pop(); push 将新元素添加到一个数组中,并返回数组的新长度值 array.push(a); shift 移除数组中的第一个元素并返回该元素 array.shift(); unshift 将指定的元素插入数组

js 数组对象

<!-- Array对象 常用方法 concat():合并数组 sort():排序 push():末尾追加元素 reverse():数组元素翻转--> <script> // var a=["hello","world"];// var b =["ze","feng"];// var c=a.concat(b);// document.write(c);// // var d=["e"

JS数组对象Array方法

1.concat() 连接两个或更多的数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. var arr = [1, 2, 3]; var arr1 = [11, 22, 33]; document.write(arr.concat(4, 5, arr1)); 输出结果: 1,2,3,4,5,11,22,33 2.join() 把数组的所有元素放入一个字符串.元素通过指定的分隔符进行分隔. var arr = ['item 1', 'item 2', 'item 3']; var

js 数组对象,数组的使用

var a =new Array(1,2,3,4,'a','b','c',{x:1,y:2}); alert(a[7].x); //数组之中可以定义数组. var b=['a','b','c']; c=a.concat(b); //连接两个数组 // console.log(a); // console.log(b); // console.log(c); 通过指定的分隔符来隔开字符串,将每一个放进数组 var arr='javascript,jq,c++,c,php'.split(',');