【发布时间】:2017-08-23 17:53:10
【问题描述】:
我正在尝试在 javascript 中对表示设备接口的对象进行排序和数组。我在这里找到了一些似乎适用于某些情况而不适用于其他情况的代码。
这是我的代码:
compareByName = function(a, b) {
console.log("sort by name");
const nameA = a.name.toUpperCase();
const nameB = b.name.toUpperCase();
let comparison = 0;
if (nameA > nameB) {
comparison = 0;
} else if (nameA < nameB) {
comparison = -1;
}
return comparison;
}
vm.interfaceData.sort(compareByName);
当我有这样的对象时它可以工作:
[
{
"name": "eth4",
},
{
"name": "eth3",
},
{
"name": "eth2",
},
{
"name": "eth2",
}
]
eth0
eth1
eth2
eth3
但是当我有这样的名字时,它似乎不再起作用了:
[
{
"name": "GigabitEthernet0/8",
},
{
"name": "SBB",
},
{
"name": "SR-2",
},
{
"name": "GigabitEthernet0/7",
},
{
"name": "SR-1",
},
{
"name": "GigabitEthernet0/5",
},
{
"name": "GigabitEthernet0/4",
}
]
GigabitEthernet0/8
SBB
SR-2
GigabitEthernet0/7
SR-1
GigabitEthernet0/5
GigabitEthernet0/4
【问题讨论】:
-
嗯,应该是 1 而不是 0 如果更大的话......
标签: javascript arrays json sorting