js數組的map方法

map():返回一個新數組,數組中的元素爲原始數組元素調用函數處理後的值,map()方法按照原始數組元素順序依次處理元素
map方法會給原數組中的每個元素都按順序調用一次callback函數,callback每次執行後的返回值(包括undefined)組合起來形成一個新數組。callback函數只會在有值的索引上被調用,那些從來沒被賦過值或者使用delete刪除的索引則不會被調用。

使用map方法處理數組時,數組元素的範圍是在callback方法第一次調用之前就已經確定了。在map方法執行的過程中,原數組中新增加的元素將不會被callback訪問到,若已經存在的元素被改變或刪除了,則他們傳遞到callback的值是map方法遍歷到他們的那一刻的值,而被刪除的元素將不會被訪問到。
語法:

array.map(function(value, index, arr),thisValue)

下面是參考的菜鳥教程上的圖:
在這裏插入圖片描述例如:

var arr = [1,2,3,4,5,6,7];
 var ar = arr.map(function(elem){
    return elem*4;
 });

對於操作的數組每一個變量都是對象的話,可以使用下面的方式

let r = res.map(item => {
    return {
        title: item.name,
        sex: item.sex === 1? '男':item.sex === 0?'女':'保密',
        age: item.age,
        avatar: item.img
    }
})
也可以省略return
const users=res.items.map(item => ({
    url: item.html_url,      
    img: item.avatar_url,      
    name: item.login,
    })
);

上面的我的理解是由於操作的數組的每一個元素都是對象,所以使用了return 加大括號,而下面的大括號外面加了小括號,表明是一個函數表達式,是又返回值的,我是這樣理解的,不知道對不對。
最下面那個好像是高級特性:
//加括號的函數體返回對象字面表達式:
參數=> ({foo: bar})

//支持剩餘參數和默認參數
(參數1, 參數2, …rest) => {函數聲明}
(參數1 = 默認值1,參數2, …, 參數N = 默認值N) => {函數聲明}
參考連接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章