Bra*_*vis 1 javascript sorting indexing associative-array multidimensional-array
我一定错过了正确的术语,否则我确信我可以通过搜索找到答案......无论如何,这就是我想做的。
通过 javascript,我得到了四个想要排序的变量(A、B、C 和 D),并且仍然跟踪变量名称(因为它是用含义信息编码的)。
样本数据:
A = 2;
B = 1;
C = 4;
D = 3;
Run Code Online (Sandbox Code Playgroud)
我现在需要做的就是按值顺序(4,3,2,1)对它们进行排序,以便我实际上可以知道变量名称顺序(C,D,A,B)。
您可以保留一个值对对象数组,然后简单地对该数组进行排序。当然,数组的排序方法需要知道如何解释对象,但这可以通过向排序方法提供比较函数来完成。
首先声明你的对象数组:
sample_data = [
{ name: 'A', value: 2 },
{ name: 'B', value: 1 },
{ name: 'C', value: 4 },
{ name: 'D', value: 3 }
];
Run Code Online (Sandbox Code Playgroud)
然后写一个比较函数:
function custom_compare (a,b) {
// I'm assuming all values are numbers
return a.value - b.value;
}
Run Code Online (Sandbox Code Playgroud)
然后简单地排序和反转:
sample_data.sort(custom_compare).reverse();
Run Code Online (Sandbox Code Playgroud)
要打印出排序后的名称,只需迭代数组即可:
for (var i=0;i<sample_data.length;i++) {
console.log(sample_data[i].name);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5365 次 |
| 最近记录: |