1. 程式人生 > 其它 >map, reduce, filter, forEach - js [ES6]

map, reduce, filter, forEach - js [ES6]

map 對映(一一對應)

let arr = [68, 53, 12, 98, 65]

let arr2 = arr.map(item => item >= 60 ? '及格' : '不及格')

console.log(arr)
console.log(arr2)

// (5)[68, 53, 12, 98, 65]
// (5)["及格", "不及格", "不及格", "及格", "及格"]

reduce 簡化(多對一)

let arr = [68, 53, 12, 98, 65]

let result = arr.reduce(function (tmp, item, index) {
  alert(tmp)
  alert(item)
})

/**
 第一次
tmp: 68 item: 53

第二次
tmp: undefined item: 12
需要返回才能得到資料(所以返回undefined)
**/

---------------------------------------------------------

let result = arr.reduce(function (tmp, item, index) {
  alert(index +' : ' + tmp + ' , ' +item)
})

/** 
1 : 68 , 53
2 : undefined , 12
3 : undefined , 98
4 : undefined , 65
**/

---------------------------------------------------------

let result = arr.reduce(function (tmp, item, index) {
  return tmp + item
})

alert(result)

//296

filter 過濾

let arr = [68, 53, 12, 98, 65]

let arr2 = arr.filter( item => item%2 == 0 )

console.log(arr)
console.log(arr2)

//(5)[68, 53, 12, 98, 65]
//(3)[68, 12, 98]

forEach 遍歷

let arr = [68, 53, 12, 98, 65]

arr.forEach((item, index) => {
  alert(`第${index}個: ${item}`) //注意是反單引號
})

//第0個: 68
//第1個: 53
//...

JSON序列號和反序列化

  • 注意引號的變化!!!

JSON.stringify({a: 12, b: 5}) => '{"a": 12, "b": 5}'

JSON.parse('{"a": 12, "b": 5}') => {a: 12, b: 5}