Jquery 如何根据所需规则(而不是名称或索引)对JSON重新排序?
我有一个JSON,希望它被重新排序为一个新的JSON 这就是我获取JSON的方式:Jquery 如何根据所需规则(而不是名称或索引)对JSON重新排序?,jquery,json,sorting,Jquery,Json,Sorting,我有一个JSON,希望它被重新排序为一个新的JSON 这就是我获取JSON的方式: function getFormData($form){ var unindexed_array = $form.serializeArray(); var indexed_array = {}; $.map(unindexed_array, function(n, i){ indexed_array[n['name']] = n['value']; });
function getFormData($form){
var unindexed_array = $form.serializeArray();
var indexed_array = {};
$.map(unindexed_array, function(n, i){
indexed_array[n['name']] = n['value'];
});
return indexed_array;
}
假设结果如下(JSON.stringify()):
我想按客户要求重新订购。大概是这样的:
var arr_order = [3,2,0,1];
var txt_JSON = {"created_date":"2020-10-28","age":"29","username":"john","email":"john@doe.com"}
根据重新排序规则,JSON应更改为:
var arr_order = [3,2,0,1];
var txt_JSON = {"created_date":"2020-10-28","age":"29","username":"john","email":"john@doe.com"}
这里的大多数示例显示按名称或值排序。非常感谢您的帮助。您可以使用
object.entries
然后.map
按排列顺序
返回预期的成对顺序
并使用object.fromEntries
var txt\u JSON={
用户名:“john”,
电子邮件:“john@doe.com",
年龄:"29岁",,
创建日期:“2020-10-28”,
}
var arr_order=[3,2,0,1]
var txt_JSON_entries=Object.entries(txt_JSON)
var new_txt_JSON=Object.fromEntries(arr_order.map((i)=>txt_JSON_entries[i]))
log(new_txt_JSON)
就像一个符咒。谢谢你