隨筆:ES6 forEach、filter、map、some、every、find、findIndex、reduce

var listMap = [{ id: '1001', width: 50 },
{ id: '1002', width: 80 },
{ id: '1003', width: 120 },
{ id: '1004', width: 40 },
{ id: '1005', width: 110 },
{ id: '1006', width: 60 }]

//改變原始數據width+20[forEach map都可以,forEach語義比較適合]
listMap.forEach(Map =>  Map.width += 20 )


listMap.map(Map => Map.width += 20 )

//返回width集合【forEach 不行】
 w = listMap.forEach(Map => { return Map.width += 20 })
//undefined

w = listMap.map(Map => { return Map.width += 20 })
//[ 70, 100, 140, 60, 130, 80 ]

//找出width大於100
var subsets= listMap.filter(Map => { return Map.width > 100 })

//[ { id: '1003', width: 120 }, { id: '1005', width: 110 } ]


//判斷是否存在一個width大於100
var hassub100 = listMap.some(Map => { return Map.width > 100 })

//true


//是不是所有width都大於100
var allsub100 = listMap.every(Map => { return Map.width > 100 })

//false


//找到大於100就返回
var big = listMap.find(Map => { return Map.width > 100 })

//{ id: '1003', width: 120 }

//找打大於100位置序列號
var i = listMap.findIndex(Map=>{ return Map.width > 100 })

//2


//統計所有的width和
var sum = width.reduce((sum, w) => { return w + sum },0)

//460

//不會改變原數據

  var sum = listMap.reduce((sum, p) => 
  { return p.width + sum },0)
  //460

 

發佈了110 篇原創文章 · 獲贊 38 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章