我正在尝试对我的哈希表下拉菜单按字母顺序进行排序...使用以下函数:
function getSortedKeys(obj) {
var keys = [];
for(var key in obj) {
keys.push(obj[key]);
keys[keys.length-1]['key'] = key;
}
return keys.sort(function(a,b){
return a.name > b.name ? 1 : a.name < b.name ? -1 : 0;
});
}
这将下拉菜单排序...虽然它会更改我的菜单项的原始id号,从而破坏我的网站上的某些内容...是否可以保留每个菜单项的原始id号并仍然进行排序?
对不起..这是哈希代码:
var clientProjectsHash = {};
clientProjectsHash['1'] = {};
clientProjectsHash['1']['name'] = 'RONA';
clientProjectsHash['2'] = {};
clientProjectsHash['2']['name'] = 'CMS';
clientProjectsHash['3'] = {};
clientProjectsHash['3']['name'] = 'ALT';
getSortedKeys函数被以下代码调用:
function getInitialClient() {
clientProjectsHash = getSortedKeys(clientProjectsHash);
for (clientKey in clientProjectsHash) {
if(clientKey > 0) {
return clientKey;
}
}
}
keys[keys.length-1]['key'] = key;
。这与“ID”有关吗?如果不是,请详细说明你的问题。 - Felix KlinggetSortedKeys(clientProjectsHash)
返回了一个正确排序并且带有正确键的数组。我确实看到你正在覆盖clientProjectsHash
。另外,你正在对一个数组使用for..in
,不要这样做。 - gen_Eric