【发布时间】:2013-06-20 15:28:11
【问题描述】:
这是返回的一些数据的缩短版本:
var array =
[{
"response":
{
"itineraries":[
{
"price":
{
"totalPricePerPassenger":"104"
}
},
{
"price":
{
"totalPricePerPassenger":"102"
}
},
{
"price":
{
"totalPricePerPassenger":"103"
}
}
]
}
}];
我的计划是对总价返回的数据进行排序。
这是我用来排序和显示结果的代码:
function sort(a, b){
var a_price = a.response.itineraries.price.totalPricePerPassenger();
var b_price = b.response.itineraries.price.totalPricePerPassenger();
return ((a_price < b_price) ? -1 : ((a_price > b_price) ? 1 : 0));
}
var data = array.sort(sort);
console.log(data);
从上面的 console.log 中,这是它输出的结果,你可以看到价格仍然是原始顺序并且没有变化。
关于为什么会发生这种情况的任何想法?我在正确的轨道上吗?
【问题讨论】:
-
totalPricePerPassenger 为什么您将其用作函数。不带 () 试试;
-
不知道我是怎么错过的,哎呀。这和下面的答案似乎解决了这个例子,但不适用于实时 API 响应......
标签: javascript arrays sorting object