平, 我创建了一个js对象。看起来像这样
locationsArray.push({
ID: receivedData[i].ID,
Name: receivedData[i].Name,
Distance: distance
});
现在我正在尝试按距离排序这个locationsArray,这是一个浮点数。我试过了
function sortByKey(array, key) {
return array.sort(function(a,b) { return a[key] - b[key];});
}
我正在调用这样的函数:
sortByKey(locationsArray, locationsArray.Distance);
但这并没有正确排序。以下是输出示例(ID,名称,距离):
18, Kirjasto 10, 0.048929030237684454
1, Kuudes Linja, 0.06257994886543376
16, Café Carusel, 0.06235102244550915
15, Tavastia, 0.04540176208034692
我想这不是很难,有人可以帮忙吗?
答案 0 :(得分:4)
你错过了比较器功能的key
:
function sortByKey(array, key) {
return array.sort(function(a,b) { return a[key] - b[key];});
}
传入数组和字段名称以进行排序:
sortByKey(inputArray, 'Distance');
(请注意inputArray
已就地排序)
答案 1 :(得分:0)
来自joews的回答是正确的。 您应该将函数调用更改为:
sortByKey(locationsArray, 'Distance');
键是属性名称,但您使用的是属性值..