javascript对象按float-number排序

时间:2015-10-30 12:08:26

标签: javascript sorting

平, 我创建了一个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

我想这不是很难,有人可以帮忙吗?

2 个答案:

答案 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');

键是属性名称,但您使用的是属性值..