for in //for of //forEach //map三種對比


遍歷Array可以采用下標循環,遍歷MapSet就無法使用下標。為了統一集合類型,ES6標准引入了新的iterable類型,ArrayMapSet都屬於iterable類型。

具有iterable類型的集合可以通過新的for ... of循環來遍歷。


<script>
【鍵-->鍵值】
【key-->value】
var arr=[
{
name : '余佳品',
age : "26"
},
{
name : '增利',
age : "25"
},
]
/*for in 是es5的只能拿到下標(鍵值)for ... in循環由於歷史遺留問題,它遍歷的實際上是對象的屬性名稱。一個Array數組實際上也是一個對象,它的每個元素的索引被視為一個屬性*/
for(item in arr){
console.log(item)//0 1 下標
}
/*for ... of它只循環集合本身的元素:相當於循環的鍵值value*/
    for(item of arr){
console.log(item)//{name: "余佳品", age: "26"} {name: "增利", age: "25"}
}


/*當然最好用的還是這個,不光可以循環鍵還可以循環鍵值 最推薦,接受三個參數,第一個是value鍵值 第二個是key鍵,第三個元素是數組本身*/

 


arr.forEach(function (element, index, array) {
console.log(element,'****p1') //鍵值 {name: "余佳品", age: "26"}age: "26"name: "余佳品"__proto__: Object "****p1"
console.log(index,'****p2') //0 1 "****p2"
console.log(array,'****p3')//(2) [{…}, {…}] "****p3" 數組自己本身
})
</script>

還有一種方法是array.map方法
const array = [1, 3, 6, 9];
const newArray = array.map( function  (value) {
   return  value + 1;
});
console.log(newArray);
console.log(array);

結果:

[2, 4, 7, 10]

[1, 3, 6, 9]

1、.map()方法使用return,進行回調;其他方法可不需要。

2、.map()方法直接對數組的每個元素進行操作,返回相同數組長度的數組;其他方法可擴展數組的長度。

Arraymap()filter()方法,可是Object沒有這些方法,注意區別


參考:廖雪峰的官方網站 https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450082788640f82a480be8481a8ce8272951a40970000


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM