一.数组扁平化
数组扁平化主要的表现就是把多层嵌套的数组拉平,变成一维数组
看案例
var arr = [1, 2, 3, [4, 3, [2, 7], 2], 5, [5, 9, 10], 7];
function func(user){
let arr1 = [];
for(var i=0;i<user.length;i++){
if(Array.isArray(user[i])==false){
arr1.push(user[i]);
}else{
arr1 = arr1.concat(func(user[i]))
}
}
arr = arr1;
return arr;
}
function func(user){
let arr1 = [];
user.forEach((item)=>{
Array.isArray(item)==false?arr1.push(item):arr1 = arr1.concat(func(item))
})
arr = arr1;
return arr;
}
func(arr);
console.log(arr);
function add(x, y) {
return x + y
}
二.函数柯里化
1.概括
柯里化(Currying)又称部分求值,一个柯里化的函数首先会接收一些参数,接收了这些参数后,该函数并不会立即求值,而是继续返回另外一个函数,刚才传入的参数在函数形成的闭包中被保存起来。待到函数被真正需要求值的时候,之前传入的所有参数都会被一次性用于求值。
柯里化是一种函数的转换,它是指将一个函数从可调用的 f(a, b, c) 转换为可调用的 f(a)(b)©或者f(a,
b)©或者f(a)(b, c)
2.案例
函数柯里化
function curryingAdd(x) {
return function (y) {
return x + y
}
}
function binds() {
return function (x,y) {
return x + y
}
}
console.log(add(1,3));
console.log(curryingAdd(1)(5));
console.log(binds()(2,4));