为了账号安全,请及时绑定邮箱和手机立即绑定

使用排序方法声明一个内部有函数的函数

使用排序方法声明一个内部有函数的函数

qq_花开花谢_0 2021-11-18 16:08:48
假设我正在尝试以“编程方式”制作更多函数,sort(fn) 我只是在尝试声明一个将所有内容汇总在一起的函数的方式。我懂了:myArrayObjs=[[  { name: "charles", numb: 28 },  { name: "Theo ", numb: 22 },  { name: " Sagna", numb: 27  }]我想对它进行排序,得到一个数组的顺序,记住它的麻木 obj,因此基本上可以是这样的:myArrayObjs.sort(function Objs(obj1,obj2){return obj1.numb-obj2.numb})让我们说如果我控制台记录它的方式是这样的:console.log(myArrayObjs.sort(function Objs(obj1,obj2){return obj1.numb-obj2.numb}))回报将是3) [{…}, {…}, {…}]0: {name: "Theo ", numb: 22}1: {name: " Sagna", numb: 27}2: {name: "charles", numb: 28}length: 3__proto__: Array(0)完美的!!!但重点是:我如何总结以前在通用函数中公开的所有内容?我可以随时调用,只需设置正确的参数?我尝试的是:function myNewArray(myArrayObjs,obj1,obj2){ myArrayObjs.sort(function Objs(obj1,obj2)  {    return obj1-obj2  } )}但是当我尝试console.log它时,它回击说参数obj1并且obj2“没有定义”或类似的东西。我究竟做错了什么?
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

obj1并且obj2在排序的回调是在两个对象myArrayObjs数组,sort函数将通过这些给你的回调,所以你的myNewArray函数应该接受,这将是使用了排序,而不是字段名obj1和obj2,例如:


function myNewArray(myArrayObjs, field)

{

    return myArrayObjs.sort(function Objs(obj1, obj2)

        {

            return obj1[field] - obj2[field]

        }

    )

}


let result = myNewArray(myArrayObjs, 'numb')


查看完整回答
反对 回复 2021-11-18
  • 1 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信