[英]Sorting a JSON array with multiple objects and no keys
我有以下數組,它有多個對象但沒有鍵。
const result = [
["Joe", "1", "2.22%", "$3,000.00"],
["Tom", "1", "2.22%", "$4,650.00"],
["Ryan", "4", "4.44%", "$18,925.00"],
["Jordan", "2", "4.44%", "$3,300.00"],
["Fred", "0", "0.00%", "$0.00"],
["Steve", "0", "0.00%", "$0.00"]
]
我正在嘗試按第四個對象排序,但我很難弄清楚這一點。 是否有一種快速簡便的方法可以在不更改數組的情況下完成此操作?
我想返回按降序排列的第 4 個對象排序的結果。
return {result: result[0][0] + ": " + result[0][3] + '\n' + result[1][0] + ': ' + result[1][3] + '\n' + result[2][0] + ': ' + result[2][3] + '\n' + result[3][0] + ': ' + result[3][3] + '\n' + result[4][0] + ': ' + result[4][3] + '\n' + result[5][0] + ': ' + result[5][3] };
因此返回的結果如下所示:
瑞安:18,925.00 美元
湯姆:4,650.00 美元
喬丹:3,300.00 美元
喬:3,000.00 美元
弗雷德:$0.00
史蒂夫:0.00 美元
您可以獲得一個沒有不需要的字符作為數字的規范化值,並返回用於排序的增量。
const normalize = s => s.replace(/[^\\d.]/g, ''); var array = [["Joe", "1", "2.22%", "$3,000.00"], ["Tom", "1", "2.22%", "$4,650.00"], ["Ryan", "4", "4.44%", "$18,925.00"], ["Jordan", "2", "4.44%", "$3,300.00"], ["Fred", "0", "0.00%", "$0.00"], ["Test", "0", "0.00%", "$0.00"]], result = array .sort((a, b) => normalize(b[3]) - normalize(a[3])) .map(({ [0]: name, [3]: amount }) => [name, amount]); console.log(result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.