几个 ES6 函数式编程的小技巧
更新对象
let state = {
id: 1,
points: 100,
name: "Goran"
}
let newState = {
...state, //重点在这
points: 120
}
/*
{
id: 1,
points: 120,
name: "Goran"
}
*/
更新数组
原始数组为 [1, 1, 1, 1]
,现在需要改变第三个元素,使其 +1 ,最终结果 [1,1,2,1]
。
let state = [1, 1, 1, 1]
let index = 2
let newState = [
...state.slice(0, index),
state[index] + 1,
...state.slice(index + 1)
]
过滤器
一个元素为纯数字的数组,过滤出所有奇数。
var arr = [0, 1, 2, 3, 4]
arr.filter( x => x%2 === 0 )
累加器
计算出所有数组里元素的总和。
var arr = [0, 1, 2, 3, 4]
arr.reduce( (prev, curr) => prev + curr )
//10
arr.reduce( (prev, curr) => prev + curr , 20)
//30
变量对调
将两个变量的值互相对调。
var a = 1, b = 2;
[a , b] = [b , a]
// a=2, b=1