永发信息网

javascript二维数组怎样排序

答案:2  悬赏:40  手机版
解决时间 2021-03-05 05:55
  • 提问者网友:疯孩纸
  • 2021-03-04 11:41
javascript二维数组怎样排序
最佳答案
  • 五星知识达人网友:琴狂剑也妄
  • 2021-03-04 12:39
主要是通过sort函数来排序



var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]];
for(var i in arr) console.log(arr[i]);
arr.sort(function(){return x[0]-y[0]});//按每个数组的第一个元素的大小来排序;x,y分别是相邻的两个数组元素如[1,2,3],[7,2,3];函数是自定义的,所以还是很灵活的
for(var i in arr) console.log(arr[i]);//可以看到变化
全部回答
  • 1楼网友:执傲
  • 2021-03-04 13:32
我觉得你这里应该是错误的用法,应该是: array.apply(null,new array(+num))这样的吧,是不是少了 new ? javascript 的函数有两个告别的方法 call 和 apply,这两个方法的作用都是把函数里的 this 指针绑定到这两个方法的第一个参数指定的对象(也就是相当于这个对象临时多出了这个函数作为方法),而区别是 call 是把除了第一个参数外的所有参数依次传递给函数,而 apply 是把第二个参数的数组元素依次传递给函数,所以 apply 的第两个参数指能为数组(当然也可能不传) function a(a, b){     this.x = [a, b] } function b(e, f){     this.x = [e, f] } a.prototype.b = b; var a = new a(1, 2), b = {}; a.b(3, 4); a.call(b, 1, 2); b.apply(b, [3, 4]); // 最后 a.x 和 b.x, a.x 和 b.x 都是一样的(本来 b 是没有 a 构造, b 方法的)这里就可以知道 b.apply 这里的作用了吧 根据以上分析,我觉得你这个代码有点多余 目的应该是要生成一个 num 大小的值都为 value 的数组,完全可以这样: return (new array(num)).map(function(d,i){return value}) 测试了下,你的代码正常,我的这个代码不能用,无法理解,不就是 array 的 map 方法么,为什么我这样不对呢。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯