假设我正在尝试以“编程方式”制作更多函数,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 回答
![?](http://img1.sycdn.imooc.com/54584f240001db0a02200220-100-100.jpg)
侃侃尔雅
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')
添加回答
举报
0/150
提交
取消