我最近學習了數組的很多屬性,然后就遇到了map和forEach這兩個屬性,現在捋一捋這兩個屬性的用法和區別
當用來遍歷原數組時,這兩個屬性用法一模一樣,但是遍歷的數組元素不包括空元素
運算結果
5和7之間的空元素,打印a時並沒有沒打印出來,但是打的下標還是留了這個位置跳過去了,后面打印的數組也包含這個空元素
不同處:map有一個返回值,foreach則沒有返回值,當函數的執行部分{ }什么都不寫時,這個返回值是一個和原數組等長度的,全部由undefined組成的元素的新數組,而forEach僅僅是一個undefined
並且map的{ }里加其return 字符時,會返回與元素組等長度的由字符元素組成的數組,而forEach還是返回一個undefined
當return 后面返回的數組參數a時,就可以得到原來數組元素一模一樣的一個新數組,forEach則不能
這樣的話我們就可以對a操作,比如+10,那這樣我們就得到比原數組每一個元素都大10的新數組;我們還可以*10,就得到元素大10倍的新數組等等
我們還可以返回b,也就是下標
得到的就是由元素組下標的10倍當作元素組成的新數組,這個新數組還是和原來數組一樣長度
總結:map,forEach這兩個用來遍歷原來的數組時,用法結果一樣,
但是map有一個返回值,這個返回值是一個和原數組長度相等的新數組;{ }里什么也不寫的話,所有元素就都是undefined;{ }寫了return,並且return后面的值就是新數組的元素,直接更改這個return后面的值,就可以得到我們需要的新數組