js數組map遍歷


返回新數據,對原數組不影響。

原來的寫法:

for(var i in list){
    list[i].type = 1
}

優化后:

var newList = list.map(item => {
    item.type = 1;
    return item;
})

或

list.map(item => {
    item.type = 1;
})
var newList = list;

當數組是數字時:

var arr = [4, 9, 16, 25];
var brr = arr.map(val => val+1);
brr; // [5, 10, 17, 26]
arr; // [4, 9, 16, 25]

當數組是對象時:

var arr = [{name:'小明'},{name:'小紅'}];
var brr = arr.map(val=> val.sex = 1);
var crr = arr.map(val => {val.age = 18;return val});
arr; // [{name:'小明', sex: 1, age: 18},{name:'小紅', sex: 1, age: 18}]
brr; // [1, 1]
crr; // [{name:'小明', sex: 1, age: 18},{name:'小紅', sex: 1, age: 18}]

可以看到,arr原數組表面上是已經被改變的了,實際上是對象的引用,所以在map里面改變,會導致新值和舊值都改變。


免責聲明!

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



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