首先,我知道技术上Javascript没有关联数组,但我不知道如何标题并获得正确的想法.
所以这是我的代码,
var status = new Array();
status['BOB'] = 10
status['TOM'] = 3
status['ROB'] = 22
status['JON'] = 7
Run Code Online (Sandbox Code Playgroud)
而且我想按值对它进行排序,这样当我稍后循环它时,ROB
首先是,然后BOB
等等.
我试过了,
status.sort()
status.sort(function(a, b){return a[1] - b[1];});
Run Code Online (Sandbox Code Playgroud)
但他们似乎都没有做任何事情.
在阵列之前和之后将阵列打印到控制台导致它以相同的顺序出现.
sam*_*aml 24
数组只能有数字索引.您需要将其重写为Object或Object of Array.
var status = new Object();
status['BOB'] = 10
status['TOM'] = 3
status['ROB'] = 22
status['JON'] = 7
Run Code Online (Sandbox Code Playgroud)
要么
var status = new Array();
status.push({name: 'BOB', val: 10});
status.push({name: 'TOM', val: 3});
status.push({name: 'ROB', val: 22});
status.push({name: 'JON', val: 7});
Run Code Online (Sandbox Code Playgroud)
如果您喜欢该status.push
方法,可以使用以下方法对其进行排序:
status.sort(function(a,b) {
return a.val - b.val;
});
Run Code Online (Sandbox Code Playgroud)