闭包题目讲解3

补全代码实现数组按年龄、姓名、任意字段排

var user=[
  {name:"john",age:20,company:"baidu"},
  {name:"pete",age:"18",company:"alibaba"},
  {name:"ann",age:"19",company:"tengxun"}
]
users.sort(byname)
users.sort(byage)
users.sort(byfield('surname'))
//sort的用法括号里面是函数。
users.sort(function(a,b){
  return a.name>b.name
})
users.sort(function(a,b){
  return a.age>b.age
})
function byname(a,b){
  return a.name>b.name
}
所以byfield('surname')是函数,需要两个参数做比较。
function byfield(field){
 return function(user1,user2){
    return user1[field]> user2[field]
  }
}//想怎么排序,定field的值就好了。这里field的引入把surname给暂存下来了。

写一个sum函数

console.log(sum(1)(2))  //3
console.log(sum(5)(-1))   //4
//sum()得到的就是一个函数,并引入变量1,得到的这个函数再执行,出现变量2,并出现方法。
function sum(a){
  return function(b){
    return a+b
  }
}   //a被暂存了。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容