Javascript: sort() 二维数组

标签 javascript arrays

我有一个二维数组,其中第一个是距离,第二个是对象:

[distance][object]

我需要按距离订购 - 我正在尝试类似的方法但它不起作用,有人可以帮助我吗?

lista.sort((a, b) => {return a-b});

let t = lista.sort(sortFunction);

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

最佳答案

如果我正确理解你的问题,下面的内容应该对你有用 - 这里的想法是在你的二维数据集的“外部数组”上调用 .sort(),然后通过一个比较函数,用于测试被比较的每个项目的第一个元素(即距离数据):

var data = [
  [22, { object : 22 }],
  [10, { object : 10 }],
  [3, { object : 3 }],
  [50, { object : 50 }]
]

console.log('unsorted:', data)

data.sort((a, b) => {
  return a[0] - b[0]
})

console.log('sorted:', data)

关于Javascript: sort() 二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53198924/

相关文章:

JavaScript 使用任意数字

javascript - TestCafe 使用客户端函数从 HTML 数据表中获取数据

c++ - 大型二维静态数组和 vector 的 vector 的内存使用

c++ - 从指针打印动态 int 数组获取奇怪的字符

python - 同步访问时,在共享内存中使用 numpy 数组会很慢

c - 将字符附加到c中的二维数组值

javascript - Firebase 函数将错误的 key 写入 firebase 数据库

javascript - Jquery按钮点击获取所选选项值

javascript - Firefox 三击选择返回不正确的开始和结束偏移

java - StringBuffer 和摊销