1

我一定是错过了正确的术语,否则我确定我可以通过搜索找到答案......无论如何,这就是我想要做的。

通过 javascript,我得到了我想要排序的四个变量(A、B、C 和 D),并且仍然跟踪变量名称(因为它是用含义信息编码的)。

样本数据:

A = 2;
B = 1;
C = 4;
D = 3;

我现在需要做的是按值顺序(4、3、2、1)对它们进行排序,这样我就可以真正知道变量名的顺序(C、D、A、B)。

4

3 回答 3

5

您可以保留一个值对对象数组,然后简单地对该数组进行排序。当然,数组的排序方法需要知道如何解释对象,但这可以通过向排序方法提供比较函数来完成。

首先声明你的对象数组:

sample_data = [
  { name: 'A', value: 2 },
  { name: 'B', value: 1 },
  { name: 'C', value: 4 },
  { name: 'D', value: 3 }
];

然后写一个比较函数:

function custom_compare (a,b) {
  // I'm assuming all values are numbers
  return a.value - b.value;
}

然后简单地排序和反转:

sample_data.sort(custom_compare).reverse();

要打印出排序后的名称,只需遍历数组:

for (var i=0;i<sample_data.length;i++) {
  console.log(sample_data[i].name);
}
于 2012-09-25T04:11:35.647 回答
0

愿它帮助你:

https://github.com/shinout/SortedList

这是排序列表库。

于 2012-09-25T03:40:41.727 回答
0

我认为您应该寻找用 Javascript 实现的“关联数组”之类的东西。

检查这个较早的线程以获得您的答案。

于 2012-09-25T03:51:12.600 回答