Javascript 按列对数组进行排序,作为函数中的参数

Javascript 按列对数组进行排序,作为函数中的参数,javascript,ecmascript-3,Javascript,Ecmascript 3,我可以按列对数组进行排序,如下所示: var myArr=[ [0,10,20,“堵塞”], [1,20,14,“胡萝卜”], [2,30,14,“奶油冻”], [3,40,16,“牛肉”], [4,0,16,“gwen”], ] 还是本末倒置 如果这不合理,我会再写一次#spectrumofconfusion您可以对索引进行闭包,并将排序函数作为回调函数返回 var sortByIndex=函数(索引){ 返回函数(a,b){ 返回(a[index]>b[index])-(a[index]b

我可以按列对数组进行排序,如下所示:

var myArr=[ [0,10,20,“堵塞”], [1,20,14,“胡萝卜”], [2,30,14,“奶油冻”], [3,40,16,“牛肉”], [4,0,16,“gwen”], ]

还是本末倒置


如果这不合理,我会再写一次#spectrumofconfusion

您可以对索引进行闭包,并将排序函数作为回调函数返回

var sortByIndex=函数(索引){
返回函数(a,b){
返回(a[index]>b[index])-(a[index]

.as console wrapper{max height:100%!important;top:0;}
您可以对索引进行闭包,并将排序函数作为回调函数返回

var sortByIndex=函数(索引){
返回函数(a,b){
返回(a[index]>b[index])-(a[index]

.as控制台包装{max height:100%!important;top:0;}
让我们在这里进行一些函数编程:

constcmp=(a,b)=>(a>b)-(ao=>o[p]
常数by=f=>(x,y)=>cmp(f(x),f(y))
myArr=[
[0,10,20,“堵塞”],
[1,20,14,“胡萝卜”],
[2,30,14,“奶油冻”],
[3,40,16,“牛肉”],
[4,0,16,“gwen”],
]
myArr.sort(按第(2)列);
log(myArr.map(JSON.stringify))
myArr.sort(按第(3)列);

console.log(myArr.map(JSON.stringify))
让我们在这里进行一些函数编程:

constcmp=(a,b)=>(a>b)-(ao=>o[p]
常数by=f=>(x,y)=>cmp(f(x),f(y))
myArr=[
[0,10,20,“堵塞”],
[1,20,14,“胡萝卜”],
[2,30,14,“奶油冻”],
[3,40,16,“牛肉”],
[4,0,16,“gwen”],
]
myArr.sort(按第(2)列);
log(myArr.map(JSON.stringify))
myArr.sort(按第(3)列);

console.log(myArr.map(JSON.stringify))
请显示一个示例输入和输出,按照您想要的方式进行排序。您在哪里调用
按列排序二维数组?在哪里定义了
排序二维数组?另外,您确定ES3标记正确吗?您真的需要ecmascript-3的解决方案吗?@NinaScholz'fraid so!Adobe尚未从版本3更新Photoshop脚本。这需要在没有像map和filter以及所有其他好东西的情况下运行;)请显示一个输入和输出示例,按您想要的方式排序。您在哪里按列调用
sort\u 2d\u array\u
以及
sort\u 2d\u array
在哪里定义?另外,您确定ES3标记正确吗?您真的需要ecmascript-3的解决方案吗?@NinaScholz'fraid so!Adobe尚未从版本3更新Photoshop脚本。这需要在没有像map和filter以及所有其他好东西的情况下运行;)这被标记为ES3。我不完全确定OP是不是真的,但仍然是。这是标记为ES3的。我不完全确定OP是不是真的,但仍然如此。
myArr.sort(sort_2d_array);

function sort_2d_array(arr) 
{

  var column = 1;

  if (a[column] === b[column]) 
  {
    return 0;
  }
  else
  {
    return (a[column] < b[column]) ? -1 : 1;
  }
}
function sort_2d_array_by_column(arr, column)