如何使用 Jquery 按值而不是按键打印 HashMap
How to print an HashMap by value and not by key with Jquery
这是将地图列表到 jsp 和 jQuery.
的代码
function getCustomerMap() {
$.ajax({
url: serverUrl + "/getMap",
success: function (data) {
var map = JSON.parse(data);
$.each(map, function (key, value) {
$('#users').append('<li data-user="' + key + '"><a>' + value.name + '</a></li>');
});
这就是 HashMap JSON 变成 jsp:
的方式
如您所见,地图是按名称排序的。
但是 HashMap 是这样列出的:
地图是从小到大排列的!
我希望地图被列为 jsp..
当客户端接收到地图的字符串表示时,它变成了一个普通的旧 javascript 对象,键是它的字段。它们的自然排序顺序是“1”、“2”、“3”、“4”、“5”、“6”。这就是它按该顺序显示的原因。以您想要的方式显示它的一种方法是将其转换为对象数组(地图值),并按名称排序 javascript:
function getCustomerMap() {
$.ajax({
url: serverUrl + "/getMap",
success: function (data) {
var map = JSON.parse(data);
var arr = new Array();
for (var key in map)
arr.push(map[key]); // add the map values to the array
// sort the array by name
arr.sort(function(a, b){
if (a.name < b.name)
return -1;
if (a.name > b.name)
return 1;
return 0;
});
// iterate by array index and append the list items.
// now you use the id field of the objects as your data-user values.
for (var i in arr)
$('#users').append('<li data-user="' + arr[i].id + '"><a>' + arr[i].name + '</a></li>');
}
});
}
这是将地图列表到 jsp 和 jQuery.
的代码function getCustomerMap() {
$.ajax({
url: serverUrl + "/getMap",
success: function (data) {
var map = JSON.parse(data);
$.each(map, function (key, value) {
$('#users').append('<li data-user="' + key + '"><a>' + value.name + '</a></li>');
});
这就是 HashMap JSON 变成 jsp:
的方式如您所见,地图是按名称排序的。
但是 HashMap 是这样列出的:
地图是从小到大排列的!
我希望地图被列为 jsp..
当客户端接收到地图的字符串表示时,它变成了一个普通的旧 javascript 对象,键是它的字段。它们的自然排序顺序是“1”、“2”、“3”、“4”、“5”、“6”。这就是它按该顺序显示的原因。以您想要的方式显示它的一种方法是将其转换为对象数组(地图值),并按名称排序 javascript:
function getCustomerMap() {
$.ajax({
url: serverUrl + "/getMap",
success: function (data) {
var map = JSON.parse(data);
var arr = new Array();
for (var key in map)
arr.push(map[key]); // add the map values to the array
// sort the array by name
arr.sort(function(a, b){
if (a.name < b.name)
return -1;
if (a.name > b.name)
return 1;
return 0;
});
// iterate by array index and append the list items.
// now you use the id field of the objects as your data-user values.
for (var i in arr)
$('#users').append('<li data-user="' + arr[i].id + '"><a>' + arr[i].name + '</a></li>');
}
});
}