我有一个数组,当我在console.log时,它给了我这个:
[paris: 348589.40826358093, londres: 490078.8871883664, nantes: 6363.461319105993]
我想按值(数字)对数组进行排序,我想不出怎么做。 我想要一个像这样的值的结果顺序: [nantes:6363.461319105993,paris:348589.40826358093,londres:490078.8871883664] 我试过这样的事情,但是没有用。
function compare(x, y) {
return x - y;
}
tab.sort(compare);
答案 0 :(得分:0)
这个数组声明是错误的。如果要对项目使用名称,则应使用js对象,如下面的代码。
var tab = {paris: 56765, londres: 3456546, 'new york': 25455654}
或
var tab = [{paris: 56765}, {londres: 3456546}, {'new york': 25455654}]
但是如果你想通过比较函数排序,可以这样做:
var tab = [{name: paris, value: 56765}, {name: londres, value: 3456546}, {name: 'new york', value: 25455654}]
并将比较方法更改为:
function compare(x, y) {
return x.value - y.value;
}
如果您想在js对象中拥有更多条件,可以使用this js library。
答案 1 :(得分:-1)
可以根据其中一个属性的值对对象进行排序。
var items = [ { name: 'Edward', value: 21 }, { name: 'Sharpe', value: 37 }, { name: 'And', value: 45 }, { name: 'The', value: -12 }, { name: 'Magnetic' }, { name: 'Zeros', value: 37 } ]; items.sort(function (a, b) { if (a.name > b.name) { return 1; } if (a.name < b.name) { return -1; } // a must be equal to b return 0; });
那应该给你一个想法