正在按升序对 AJAX 响应结果进行排序
Sorting AJAX response result in ascending order
每次重新加载页面时,基金名称的排列都会出现错误。无论页面重新加载的次数如何,名称都应始终排列为 fundI fundII fund III 等。
我尝试过不同的风格,但没有任何进展。一切都显示良好,但问题是
中的失真
这是我的代码
$(document).ready(function () {
$.ajax({
type: 'GET',
url: 'http://datarecapture.premiumpension.com:8089/api/Prices/GetAllFundNames',
contentType: "application/json"
}).done(function(data) {
$.each(data.result, function(i, ele) {
var detail = {};
detail.id = ele.FUND_ID;
detail.name = ele.FUND_NAME;
$.ajax({
type: 'GET',
url: 'http://datarecapture.premiumpension.com:8089/api/Prices/GetCurrentFundPrice?fundId=' + ele.FUND_ID
}).done(function(data) {
console.log(data.result);
var sortedData = data.result;
sortedData.sort(function(a, b){return a-b});
//var sortedData = data.Result
var id = data.result.FundID;
detail.price = data.result.UnitPrice;
//sortedname = detail.name;
var tile = buildTile(detail);
$('#tile-holder').append(tile);
})
})
});
function buildTile(detail) {
detail.sort
return '<ul style="list-style: none;">'
+ '<li>' + detail.name + '</li>'
+ '<li>' + detail.price + '</li>'
+ '<li><a href="#">View History</a></li>'
+ '</ul><hr>';
}
});
正如@Pointy 所说,最好使用 localeCompare 来排序字符串。
...done(function(data) {
var sortedData = [];
for (var i in data.result) sortedData.push(data.result[i]);
sortedData.sort(function(a, b) {
return a.name.localeCompare(b.name)
});
...
您的函数似乎有错误:
function buildTile(detail) {
detail.sort
return ...
每次重新加载页面时,基金名称的排列都会出现错误。无论页面重新加载的次数如何,名称都应始终排列为 fundI fundII fund III 等。
我尝试过不同的风格,但没有任何进展。一切都显示良好,但问题是
中的失真这是我的代码
$(document).ready(function () {
$.ajax({
type: 'GET',
url: 'http://datarecapture.premiumpension.com:8089/api/Prices/GetAllFundNames',
contentType: "application/json"
}).done(function(data) {
$.each(data.result, function(i, ele) {
var detail = {};
detail.id = ele.FUND_ID;
detail.name = ele.FUND_NAME;
$.ajax({
type: 'GET',
url: 'http://datarecapture.premiumpension.com:8089/api/Prices/GetCurrentFundPrice?fundId=' + ele.FUND_ID
}).done(function(data) {
console.log(data.result);
var sortedData = data.result;
sortedData.sort(function(a, b){return a-b});
//var sortedData = data.Result
var id = data.result.FundID;
detail.price = data.result.UnitPrice;
//sortedname = detail.name;
var tile = buildTile(detail);
$('#tile-holder').append(tile);
})
})
});
function buildTile(detail) {
detail.sort
return '<ul style="list-style: none;">'
+ '<li>' + detail.name + '</li>'
+ '<li>' + detail.price + '</li>'
+ '<li><a href="#">View History</a></li>'
+ '</ul><hr>';
}
});
正如@Pointy 所说,最好使用 localeCompare 来排序字符串。
...done(function(data) {
var sortedData = [];
for (var i in data.result) sortedData.push(data.result[i]);
sortedData.sort(function(a, b) {
return a.name.localeCompare(b.name)
});
...
您的函数似乎有错误:
function buildTile(detail) {
detail.sort
return ...