日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js数组遍历和对象遍历

發布時間:2025/3/12 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js数组遍历和对象遍历 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

針對js各種遍歷作一個總結分析,從類型用處:分數組遍歷和對象遍歷;還有性能,優缺點等。

?

JS數組遍歷:

1,普通for循環,經常用的數組遍歷

var arr = [1,2,0,3,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,ES5推出的,數組自帶的循環,主要功能是遍歷數組,實際性能比for還弱

arr.forEach(function(value,i){console.log('forEach遍歷:'+i+'--'+value);})

forEach這種方法也有一個小缺陷:你不能使用break語句中斷循環,也不能使用return語句返回到外層函數。

?

4,map遍歷,map即是 “映射”的意思 用法與 forEach 相似

arr.map(function(value,index){console.log('map遍歷:'+index+'--'+value); });

map遍歷支持使用return語句,支持return返回值

var temp=arr.map(function(val,index){console.log(val); return val*val }) console.log(temp);

forEach、map都是ECMA5新增數組的方法,所以ie9以下的瀏覽器還不支持

?

5,for-of遍歷 是ES6新增功能

for( let i of arr){console.log(i); }
  • for-of這個方法避開了for-in循環的所有缺陷
  • 與forEach()不同的是,它可以正確響應break、continue和return語句?

for-of循環不僅支持數組,還支持大多數類數組對象,例如DOM?NodeList對象。

for-of循環也支持字符串遍歷

?

?

JS對象遍歷:

1,for-in遍歷

for-in是為遍歷對象而設計的,不適用于遍歷數組。

遍歷數組的缺點:數組的下標index值是數字,for-in遍歷的index值"0","1","2"等是字符串

for (var index in arr){console.log(arr[index]);console.log(index); }

?

2、Object.keys(obj)和 Object.values(obj)分別獲取對象鍵、值組成的數組

const obj = {id:1,name:'zhangsan',age:18 }console.log(Object.keys(obj))console.log(Object.values(obj))

?

3、使用Object.getOwnPropertyNames(obj)

獲取包含對象自身的所有屬性(包含不可枚舉屬性)的數組,可 遍歷可以獲取key和value

const obj = {id:1,name:'zhangsan',age:18}Object.getOwnPropertyNames(obj).forEach(function(key){console.log(key+ '---'+obj[key])})

?

?

?

總結

以上是生活随笔為你收集整理的js数组遍历和对象遍历的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。