我正在尝试将json对象映射到具有与键关联的值的数组。我需要保持键和值相关联,因为我将在之后对创建的数组进行排序。 我的对象看起来像这样:
{"178":"05HY24","179":"1HY12","292":"1HY24","180":"3HY12"}
我尝试用这个函数做数组:
value=$.map(value, function(value, key) { return key,value; });
但是键与我的值无关。键是0,1,2,3而不是178,179,292,180。 我尝试了很多东西,但我不知道该怎么做。
答案 0 :(得分:5)
var myHashMap = JSON.parse('{"178":"05HY24","179":"1HY12","292":"1HY24","180":"3HY12"}');
console.log(myHashMap[178]);
// => "05HY24"
// now map to array..
var myArray = $.map(myHashMap, function(value, index) {
return [value];
});
console.log(myArray);
答案 1 :(得分:1)
你可以不使用jQuery来实现:
var values = {
"178": "05HY24",
"179": "1HY12",
"292": "1HY24",
"180": "3HY12"
};
var array = [];
for (var k in values)
array.push({
'k': k,
'v': values[k]
});
array.sort(function(a, b) {
return a.k - b.k;
});
console.log(array);